我正在使用cx_oracle 7和python 3.6.7建立与oracle 11g的连接,oracle 11g位于远程服务器中.Ubuntu18.04中的我的操作系统

我已经用libclntsh安装了oracle即时客户端库.所以,我没有得到预期的输出.

下面是我用来连接到oracle数据库的代码

connection = cx_Oracle.connect("username/password@host/port")
print (connection.version)
connection.close()

当脚本运行时,我希望得到的是连接版本,而不是下面的错误消息

文件"script.py",第13行,在

推荐答案

经过进一步研究,我从Ubuntu community中获得了解决方案,在安装了oracle instant client之后,您必须按照以下方式集成oracle库:

导出LD_LIBRARY_PATH=/usr/lib/oracle/<version>/client(64)/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

Linux x86_64的12.1版本可以是:

出口

其中<version>表示oracle即时客户端的版本,例如11.2、12.2

connection = cx_Oracle.connect("username/password@host/service_name e.g orcl")

要获取侦听器/服务名称,请在oracle sqlplus中键入以下内容

SQL> show parameter local_listener

值下的文字是您的侦听器/服务的名称.

Python-3.x相关问答推荐

错误2没有这样的文件或目录website_content.txt""

在numpy. linalg的qr之后使用scipy. integrate中的solve_ivp时出现了一个奇怪的错误

我在创建Pandas DataFrame时感到困惑

S的两极是什么,相当于大Pandas 的`.ilo‘方法?

Pyvis和Networkx:如何根据源或目标使 node colored颜色 不同

Pandas -我们如何在一行中应用多个要求

如何在 python 中将带有时区信息的时间戳转换为 utc 时间

Python 舍入数字不准确

基于组/ID从原始数据框中创建两个子数据框

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

无法提出给定 for 循环的原因 (Python 3.11)

python2和python3中的列表生成器

Python 3.5 中编码 utf-8 和 utf8 的区别

如何使用pandas python获取数据框中每列的最大长度

multiprocessing.Queue 中的 ctx 参数

pysftp vs. Paramiko

Python图例属性错误

带百分号的 Python 字符串格式

TypeError:只有整数标量数组可以转换为标量索引

如何创建一个永远在其上运行滚动协程的事件循环?