我正在尝试使用python连接oracle数据库,如下所示。
import cx_Oracle
conn = cx_Oracle.connect('user/password@host:port/database')
连接oracle时我遇到了错误。 DatabaseError:DPI-1047:无法加载64位Oracle客户端库:" libclntsh.so:无法打开共享对象文件:没有这样的文件或目录"。请参阅https://oracle.github.io/odpi/doc/installation.html#linux以获取帮助。
我一直在努力解决这个问题。我使用了我的用户名,密码,主机,端口和数据库(' orcl'),例如,
'admin/admin@10.10.10.10:1010/orcl'
。
为什么要连接?
啊,顺便说一下,我在azure笔记本中运行了所有代码。
答案 0 :(得分:1)
该错误表示您缺少64位Oracle客户端安装或尚未正确配置。请查看错误消息中提到的链接。它将提供有关如何执行Oracle客户端安装和配置的说明。
答案 1 :(得分:0)
这似乎是版本6.X的一个问题。这个问题没有出现在5.X.But对于我的情况有点解决方法工作。我安装在我的物理机器上,我唯一需要做的是重启或重启重新打开终端,因为我已添加到环境变量的路径中。您可以尝试使用天蓝色笔记本安装在物理机中。
答案 2 :(得分: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”
答案 3 :(得分:-1)
这是使用python连接Oracle的完整程序。 首先,您需要安装cx_Oracle。要安装它,请执行以下命令。
pip install cx_Oracle
import cx_Oracle
def get_databse_coonection():
try:
host='hostName'
port ='portnumber'
serviceName='sid of you database'
user = 'userName'
password = 'password'
dns = cx_Oracle.makedsn(host,port,service_name=serviceName)
con = cx_Oracle.connect(user, password, dns)
cursor = con.cursor()
query ="select * from table"
cursor.execute(query)
for c in cursor:
print(c)
except cx_Oracle.DatabaseError as e:
print("There is a problem with Oracle", e)
finally:
if cursor:
cursor.close()
if con:
con.close()
get_databse_coonection()