我正在使用 cx_oracle 7 和 python 3.6.7 建立到远程服务器中的 oracle 11g 的连接。我在 Ubuntu 18.04 中的操作系统
我已经使用 libclntsh.so 安装了 oracle 即时客户端库,但没有得到预期的输出。
这是我用来连接到 oracle 数据库的代码
connection = cx_Oracle.connect("username/password@host/port")
print (connection.version)
connection.close()
当脚本运行时,我希望获得连接版本而不是我收到以下错误消息
文件“script.py”,第 13 行,在 connection = cx_Oracle.connect(“username/password@host/port”) cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: “libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。请参阅 https://oracle.github.io/odpi/doc/installation.html#linux 寻求帮助
原文由 Ian Nato 发布,翻译遵循 CC BY-SA 4.0 许可协议
经过更多研究后,我从 Ubuntu 社区 获得了解决方案,在安装 oracle instant-client 之后,您必须按如下方式集成 oracle 库:
其中
<version>
表示您的 oracle 即时客户端的版本,例如 11.2、12.2连接参数应该如下
connection = cx_Oracle.connect("username/password@host/service_name e.g orcl")
要获取侦听器/服务名称,请在 oracle sqlplus 中键入以下内容
VALUE 下的文字是您的侦听器/服务名称。