python调用oracle过程 权限不足_Python连接Oracle的一些坑以及出现原因和解决方法...

前两天公司需要, 我用Python通过Oracle客户端instanceclient对接Oracle,遇到了一些问题:

提前一个小问题:

Python连接Oracle需要一个第三方库:cx_Oracle 而这个库直接pip3 install 安装不了, 或者即使安装上了,也会版本不对,所以这就需要去pipy官网上去下载与你的系统,python对应版本位数的cx_Oracle

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/

因为我的系统和Python都是64位,Python是3.6版本   所以下载红色标记出来的这个版本, 下载到你的Python安装包下面的Lib下面的site-pakeage(pakeage好像拼错了, 无所谓), 接着在site-pakeage目录下打开dos命令行, pip3 install cx_Oracle_7.3.0_cp36。。。.whl就能安装上了

问题一:

cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library:"D:\pi_sql\pl_sql\instantclient_11_21\instantclient_11_2\oci.dll is not the correct architecture

简单来说就是: cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library:   oci.dll is not the correct architecture

原因:遇到这个问题, 没别的原因, 就是你Oracle客户端instanceclient, 系统, Python  三者版本位数不对应,我的原因是我系统和Python都是64位,而Oracle客户端instanceclient别人给我的是32位, 所以怎么着都不行, 后来又给我64位的客户端 就行了

解决方法: 把原来的instanceclient卸载了,选择一个明确与你的系统, Python版本尾数相同的Oracle客户端instanceclient, Python和系统版本好查看, instance客户端不好查看

查看Python版本:

查看系统版本:右击计算机------->属性   往下找:

我的系统和Python都是64位, 那就确定是客户端instanceclient版本位数不对, 所以卸载原来的, 下一个明确是64位的instanceclient客户端就好了

问题二:

Python 连接 Oracle 数据库时报错:64-bit Oracle Client library cannot be loaded:

原因:是因为你没有配置环境变量, 将你instanceclient客户端中oci.dll所在的目录路径添加到华宁变量path中就好了

我的路径是这样:

添加到环境变量path中就好

问题三:

cx_Oracle.DatabaseError: ORA-12560: TNS: 协议适配器错误

原因:你连接Oracle的时候, 没有写入用户名密码和端口

就像这样, 就会报这个错误:

加上你的用户名密码端口就好了:

问题四:

cx_Oracle.DatabaseError: ORA-12170: TNS: 连接超时

原因:如果你是本地Oracle这样, 这个网上一搜一大把解决办法。而我的Oracle是在公司服务器上的, 所以需要公司的内网, 我连接超时的原因只是我忘了插公司的网线............

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值