【问题标题】:Python + cx_oracle connection failedPython + cx_oracle 连接失败
【发布时间】:2018-02-14 16:54:18
【问题描述】:

我有 2 台服务器:

第一个 - Oracle 服务器,第二个 - 带有 SQL Developer 的服务器。

SQL Developer 与 Oracle 有联系,效果很好。

我正在尝试通过 python + cx_oracle 连接到 Oracle,我有以下代码:

import cx_Oracle

try:
    dsnStr = cx_Oracle.makedsn("Oracle_server_ip", "1521", "Oracle_server_sid")
    con = cx_Oracle.connect(user="Oracle_user", password="Oracle_password", dsn=dsnStr)
    print ('CONNECTED TO ORACLE, VER: ' + con.version)
    cur = con.cursor()
except:
    print ('Connection Failed')

它在Oracle所在的服务器上运行良好。

但它不适用于 SQL Developer 所在的另一台服务器。

你能帮帮我吗?

【问题讨论】:

  • 删除您的 try..except 以便您收到错误消息,然后使用收到的错误消息编辑您的帖子。
  • 文件“”, 中的第 55 行 cx_Oracle InterfaceError。无法获取 Oracle 环境句柄。第55笔是:con = cx_Oracle.connect(user="user", password="password", dsn=dsnStr)
  • 尝试从.connect 函数中删除您的关键字:con = cx_Oracle.connect("Oracle_user", "Oracle_password", dsnStr)。见this answer
  • 我可以连接到oracle,当从Oracle服务器运行代码时,我无法连接到oracle,当从远程服务器运行代码时
  • 您可能想查看此ptrackapp.com/apclassys-notes/how-to-install-cx_oracle 并确保您已在另一台服务器上安装了所有 SDK 和垃圾。

标签: python oracle database-connection cx-oracle


【解决方案1】:

首先,我建议升级到 cx_Oracle 6,因为返回的错误消息可能会更好。您可以通过以下命令执行此操作:

python -m pip install cx_Oracle --upgrade

不过,您猜测,您在第二台机器上缺少一个 Oracle 客户端。最容易安装的是即时客户端,您可以找到here

【讨论】:

    猜你喜欢
    • 2022-07-08
    • 1970-01-01
    • 2022-11-19
    • 2017-09-22
    • 2011-06-28
    • 2022-01-17
    • 2017-12-20
    • 2014-06-17
    • 2018-05-03
    相关资源
    最近更新 更多