python 配置 oracle instant client

发布于:2024-12-19 ⋅ 阅读:(16) ⋅ 点赞:(0)

1.问题描述

想用python连接oracle数据库,百度得知需要cx_Oracle这个第三方库

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 确实可用