可能原因:
- python版本和Oracle客户端instanceclient版本不对应;
- 缺少对应客户端instanceclient。
解决方案:
- 确认本地是否有可用的instanceclient,没有继续步骤2,有的话跳转步骤3
- 下载instanceclient(下载地址:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html#license-lightbox)
- 找到图中的三个文件(我本地有instanceclient,直接找到就可以,没有的话下载成功需要解压一下)
- 将这3个文件复制到python根目录Lib\site-packages文件夹下,或者Anaconda同级的根目录中,重启软件,执行代码
- 步骤4若执行不成功,就把刚才解压的instantclient_19_9路径配置到环境变量中
用户变量新建TNS_ADMIN:D:\packages\instantclient_19_9
系统变量Path追加:D:\packages\instantclient_19_9
附cx_Oracle调用代码:
#创建连接cx_Oracle.connect(user="hr", password="welcome",dsn="localhost/orclpdb1")
ora_database = cx_Oracle.connect(user=Ora_message["user_name"], password=Ora_message["password"],
dsn=Ora_message["dsn"])
#创建游标
ora_cur = ora_database.cursor()
#执行sql
ora_cur.execute('select * from cust_shop_info where cust_id = \'%xxx%\'')
#获取第一条结果
ora_cur.fetchone()
#关闭游标
ora_cur.close()
#关闭连接
ora_database.close()
欢迎来到testingpai.com!
注册 关于