1.问题描述
想用python连接oracle数据库,百度得知需要cx_Oracle这个第三方库
python">import cx_Oracle# 设置Oracle数据源名称
dsn = cx_Oracle.makedsn('host', 'port', service_name='service_name')# 创建数据库连接
connection = cx_Oracle.connect(user='username', password='password', dsn=dsn)# 创建游标对象
cursor = connection.cursor()# 执行SQL查询
cursor.execute("SELECT * FROM your_table")# 获取查询结果
rows = cursor.fetchall()
for row in rows:print(row)# 关闭游标和连接
cursor.close()
connection.close()
结果connect的时候报错了:
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
2.原因
检索得知,需要安装oracle客户端:
3.解决办法
而我本地是安装了PL/SQL developer的,图中的instant client也是设置过的,PL/SQL developer可以正常使用。那么如何设置让python cx_Oracle找到我之前的instant client,在https://blog.csdn.net/u010971561/article/details/142510583中找到了答案
这篇文章中的做法是将instant client目录下的dll文件复制到python的Lib\site-packages目录下,经验证,确实可用。
4.其他方法
cx_oracle文档:
https://cx-oracle.readthedocs.io/en/latest/
经验证,cx_Oracle.init_oracle_client 确实可用
经验证,修改环境变量 Path 确实可用