python连接oracle数据库

1安装oracle客户端(win)

从官网下载instantclient-basic-windows.x64-18.5.0.0.0dbru.zip

下载的客户端与你要连接的数据库版本需一致

例如数据库是18c,对应下载的win-64-18.5

配置环境变量(复制客户端的dll文件到python可以不配置,但是如果报错还是配置上吧)

PATH: D:\Program\oracle\instantclient_18_5
ORACLE_HOME: D:\Program\oracle\instantclient_18_5
LD_LIBRARY_PATH:D:\Program\oracle\instantclient_18_5

2安装cx_oracle包

下载cx_Oracle-8.3.0-cp37-cp37m-win_amd64.whl

下载对应的python版本

$ pip install cx_Oracle-8.3.0-cp37-cp37m-win_amd64.whl

3测试连接数据库

tns = '127.0.0.1:1521/orcl'
uname = 'orale'
upwd = '123123'

db = cx_Oracle.connect(uname, upwd, tns)
print(db.version)
sql1 = 'select * from user'
df1 = pd.read_sql(sql1, db)
print(df1)
python连接oracle数据库_第1张图片

4常见问题

cx_Oracle.DatabaseError:DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory".
cx_Oracle.DatabaseError: DPI-1072: the Oracle Client library version is unsupported
cx_Oracle.DatabaseError: DPI-1050: Oracle Client library must be at version 11.2 or higher

解决方案:

(1)检查环境变量 LD_LIBRARY_PATH是否配置

python连接oracle数据库_第2张图片

(2)下载好的oracle客户端版本中所有的dll文件复制到Python\Python37\Lib\site-packages文件夹中。如果是虚拟环境,放到虚拟环境的site-packages下。如果还不行把dll也放在base环境的python下。

python连接oracle数据库_第3张图片

你可能感兴趣的:(python算法,数据库,python)