【问题标题】:Can we connect to any version of oracle using cx_oracle library python?我们可以使用 cx_oracle 库 python 连接到任何版本的 oracle 吗?
【发布时间】:2018-12-18 05:19:34
【问题描述】:

我正在尝试编写一个脚本来连接所有版本的 oracle 数据库,从最新版本到最旧版本的数据库。

我尝试使用 cx_oracle 库,发现它需要本地的客户端库才能连接到远程数据库,例如,如果我下载最新版本,那么它可以在最新的几个版本中运行,而不是全部。

还尝试了使用 cx_oracle 库的 Sqlalchemy 连接。

如果我做错了什么,请指导我?我也想知道是否有任何其他方法可以使用 PYTHON

连接到数据库

【问题讨论】:

    标签: database oracle python-3.5 cx-oracle


    【解决方案1】:

    cx_Oracle 6 和更高版本已经支持连接到从 9i 一直到 18c 的任何 Oracle 数据库,具体取决于您使用的客户端。 cx_Oracle 至少需要 11.2 版本的 Oracle 客户端库。您可以查看互操作性说明here。由于无论如何都不再支持任何早于 11.2 的版本,因此在几乎所有情况下都应该足够了。

    您也可以使用 ODBC 连接到数据库,但性能不如 cx_Oracle。

    【讨论】:

    • 所以如果我使用 18c 或 12c 的客户端,我们可以访问从 9i 到 18c 的数据库
    • 不完全。 18c 客户端允许您连接到 11.2 数据库。 11.2 客户端将允许您从 9i 连接到 18c。当然,当连接到更高版本的数据库时,您将无法利用这些版本中提供的新功能!
    • 我知道 11.2 insta_client 库可以用于 9i 到 18c 。我会测试它并会回来
    【解决方案2】:

    我的公司 Windows 7 笔记本电脑上有一个 11.2 Oracle 数据库客户端,并使用 cx_Oracle 轻松连接到 9.2 到 12.2 版本的数据库。

    我连接到所有版本的数据库的另一种方法是将 Python 包装在 Linux 版本的 Oracle sqlplus 实用程序上。这样我就不需要安装 cx_Oracle 并且可以使用较旧的 Oracle 客户端和 Linux 发行版附带的 Python 版本运行。就我而言,我在 Python 2.6 附带的 Redhat 6 上运行。我就是这样连接8.1到12.2版本的数据库的。

    我有一篇关于如何在 Linux 上从 Python 运行 sqlplus 的博文:https://www.bobbydurrettdba.com/2016/11/04/running-sqlplus-from-a-python-script/

    鲍比

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      相关资源
      最近更新 更多