Python安装cx_Oralce连接Oracle数据库

问题背景

  1. 数据库原来是11g,通过python+cx_Oracle进行日常的脚本执行;
  2. 数据库升级19c后,调整数据库连接字符串后,发现连接不上数据库,报:
    cx_Oracle.DatabaseError: ORA-28040: No matching authentication protocol

问题分析

  1. 考虑到可能是cx_Oracle和OracleClient版本问题,于是进行了调整
  1. 遇到的问题
  • 在我本地机器上,通过升级以上两个版本,问题解决,可以连接19c数据库;
  • 在同事的机器上出现,ImportError: DLL load failed: 找不到指定的模块。
  1. 最终解决
  • 同事在使用cx_Oracle-5.3-12c 版本,然后将Oracle-Client的版本调整为19以上,发现问题解决;
  • 考虑到这个问题后,模拟在原cx_Oracle-5.2.1-11g的版本下,将Oracle-Clietn的版本调整为19c也能解决;

疑惑

  • 网上的教程,基本都要求 cx_Oracle版本需要和Oracle-Client的版本对应,为什么不对应还能正常使用?这个对应关系是什么?我的电脑为什么是可以的?
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容