Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Jupyter中的cx_oracle连接到本地oracle数据库时出错_Python_Oracle_Jupyter_Cx Oracle - Fatal编程技术网

Python 使用Jupyter中的cx_oracle连接到本地oracle数据库时出错

Python 使用Jupyter中的cx_oracle连接到本地oracle数据库时出错,python,oracle,jupyter,cx-oracle,Python,Oracle,Jupyter,Cx Oracle,我想用cx_Oracle连接到本地数据库,但它引发了一个错误: DatabaseError:DPI-1047:64位Oracle客户端库无法加载:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。看见https://oracle.github.io/odpi/doc/installation.html#linux 如需帮助 我可以用sqlplus和sqldeveloper连接到数据库,但它不能在Jupyter中使用pythoncx\uoracle import cx_Or

我想用cx_Oracle连接到本地数据库,但它引发了一个错误:

DatabaseError:DPI-1047:64位Oracle客户端库无法加载:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。看见https://oracle.github.io/odpi/doc/installation.html#linux 如需帮助

我可以用sqlplus和sqldeveloper连接到数据库,但它不能在Jupyter中使用pythoncx\uoracle

import cx_Oracle

host = 'localhost'
port = 1521
SID = 'xe'
dsn_tns = cx_Oracle.makedsn(host, port, SID)

connection = cx_Oracle.connect('user', 'passwd', dsn_tns)
我可能把环境变量或客户端安装搞砸了吗

echo ${ORACLE_HOME};
/u01/app/oracle/product/11.2.0/xe

echo ${LD_LIBRARY_PATH};
/usr/lib/oracle/12.2/client64/lib
我在
/usr/lib/oracle/12.2/client64/lib中安装了客户端
  • 您还可以更新cx_Oracle。DPI-1047消息正在使用最新版本中更新的文本。这实际上并不能解决你的问题

  • 保持清洁。如果您使用的是ORACLE Instant Client,请不要将ORACLE_设置为HOME

  • 我怀疑您的环境变量没有传播到cx\ U Oracle

  • 对于64位XE,您不需要在您的案例中安装即时客户端(因为您的cx\U Oracle消息告诉我它是64位的,因为错误是查找64位Oracle客户端)。cx_Oracle可以使用数据库库

  • 一旦您解决了库搜索路径问题,您的连接字符串就会出现问题。您正在尝试使用旧的SID构造,但应使用。它需要设置为:

    • cx_Oracle文档涵盖了安装,并且还有一个值得查看的用户指南部分
        • 您还可以更新cx_Oracle。DPI-1047消息正在使用最新版本中更新的文本。这实际上并不能解决你的问题

        • 保持清洁。如果您使用的是ORACLE Instant Client,请不要将ORACLE_设置为HOME

        • 我怀疑您的环境变量没有传播到cx\ U Oracle

        • 对于64位XE,您不需要在您的案例中安装即时客户端(因为您的cx\U Oracle消息告诉我它是64位的,因为错误是查找64位Oracle客户端)。cx_Oracle可以使用数据库库

        • 一旦您解决了库搜索路径问题,您的连接字符串就会出现问题。您正在尝试使用旧的SID构造,但应使用。它需要设置为:

        • cx_Oracle文档涵盖了安装,并且还有一个值得查看的用户指南部分

        您可能希望使用此功能获得较新的Oracle XE 18c,您的服务名称将是
        sn='xepdb1'
        并且您可能希望使用此功能获得较新的Oracle XE 18c,您的服务名称将是
        sn='xepdb1'
            sn = 'xe'
            dsn_tns = cx_Oracle.makedsn(host, port, service_name=sn)