使用cx_Oracle在python中连接oracle时出错

时间:2017-12-07 07:07:30

标签: python oracle cx-oracle

我正在尝试使用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笔记本中运行了所有代码。

4 个答案:

答案 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()