【问题标题】:Setting up cx_Oracle and Oracle 11g for Django, name vs host? Where to put Instant Client?为 Django 设置 cx_Oracle 和 Oracle 11g,名称与主机?在哪里放置即时客户端?
【发布时间】:2020-11-26 22:22:22
【问题描述】:

我正在尝试关注this tutorial 将 django 与旧版 oracle 数据库连接起来,有点困惑在名称中放入什么内容。另外,我有点困惑如何安装 Instant Client,以便我的 django/python 应用程序能够看到 Instant Client。

我使用的是 Windows 10、django 3.0.1、python 3.8

1.) 首先,当我使用企业管理器连接到数据库时,我看到了这个(已编辑):

所以当我填写我的 django 时,这就是我输入的内容(已编辑):

在名称中,我是要放置 ServerName(在企业管理器图像之后)还是放置我尝试连接的服务器名称/架构?

2.)我联系了管理员,Oracle数据库是11g,在Visual Studio中,我连接数据库并检查版本,是

所以我下载了instant client for 11.2.0.4.0 (32 bit)

我使用 32 位,因为我认为我的 python 是 32 位的。

解压到 C:\instantclient_11_2 在 PATH 中将 C:\instantclient_11_2 添加到我的系统环境变量中

并尝试运行以下内容

我收到错误:

But according to the documentation here,我需要将它设置为lib_dir,但是我不确定lib_dir变量在哪里?这是一个环境变量吗?或者我的应用程序中有什么东西? Settings.py?

【问题讨论】:

  • 您使用的是 cx_Oracle 8.0 吗?
  • DIPI-1072 表示即时客户端是 32,而您的 Python 可能是 64
  • @RobertoHernandez 我有 cx_Oracle 8.0 我需要更低版本吗?此外,我尝试了 32 位和 64 位,并在将其添加到环境变量时两次都重新启动了 PC,但它仍然给我同样的错误。所以我不确定我是否正确安装了即时客户端。
  • 我会使用更新的版本。您可以从 18c 或 19c 客户端连接到 11g 数据库。
  • 好吧,我刚试了19.6 32位,有进步了,这次又报错了,不过我觉得比上次更接近连接了。

标签: python django oracle cx-oracle


【解决方案1】:

在您的情况下,我会使用 Oracle 客户端 18c 或 19c 。两者都可以毫无问题地连接到 11g 数据库。

将 11g 版本与 cx_Oracle 8.0 一起使用可能会导致问题。

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 2018-09-10
    • 1970-01-01
    • 2012-12-31
    • 2019-04-30
    • 2021-04-11
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多