在python中使用cx_Oracle在oracle DB上执行sql查询会引发错误

时间:2018-03-02 23:48:12

标签: python python-2.7 cx-oracle

错误:

DPI-1047: 32-bit Oracle Client library cannot be loaded: "The specified module could not be found"

的Python:

Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32

我已经安装了64位python但是当我在命令提示符下键入python时,它显示python应用程序是32位。

问题:

我正在尝试在驻留在远程服务器上的oracle数据库上运行SQL查询。我使用以下两种方法连接到数据库并收到上述错误。

## Method 1
ip='10.8.183.137'
port=1522
SID='DB10'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)
log.info('dsn_tns: ' + dsn_tns)
db = cx_Oracle.connect('sys', 'OraPasswd01', dsn_tns)

##Method 2
dbconn = cx_Oracle.connect(connstr, mode=cx_Oracle.SYSDBA);

如果我在虚拟服务器上复制脚本并运行它,方法#2就有效,我想从我的PC上实现它。

1 个答案:

答案 0 :(得分:0)

当未安装Oracle Client或没有设置libclntsh.so的地方设置LD_LIBRARY_PATH时,就会出现此错误。

如果已安装Oracle客户端,则搜索libclntsh.so并将LD_LIBRARY_PATH设置为

“导出LD_LIBRARY_PATH = / app / bds / parcels / ORACLE_INSTANT_CLIENT / instantclient_11_2:$ LD_LIBRARY_PATH”

检查以下链接以获取有关Oracle客户端安装的更多详细信息:oracle.github.io/odpi/doc/installation.html#linux