Python3.6/Oracle 18c/Oracle Client 12 问题 (OCI-22303)

Python 3.6 / Oracle 18c / Oracle Client 12 issue (OCI-22303)

我想在这里提出一个问题,我必须知道其他人是否有同样的问题(并修复了它:))

我有一个使用 cx_oracle 6.0.3 的 Python 脚本(3.6.1 64 位)。连接 ot Oracle 18c 数据库。 连接运行良好。 我的问题是当我尝试使用 gettype.

从数据库类型定义创建 Python 变量时

这是我的例子:

db = cx_Oracle.connect("scott/tigger@oracle_18c")
res = db.gettype("type_employee").newobject()

根据配置,我遇到以下问题:

2018-10-31 15:28:15,019 - ERROR - OCI-22303: type ""."type_employee" not found

对于 Oracle 11g,该脚本运行良好。 使用 Oracle 18c 取决于我使用的 Oracle 客户端(我想,这就是我在调查中的位置)。当我使用 Oracle 11.1.0.x 客户端时,它运行良好。当客户端是 Oracle 12 时会出现此问题。

我还有其他测试/更改要进行:

我会尽快将结果发布在这里。

有没有人遇到/有同样的问题,可以分享经验/解决方案?

谢谢。

编辑 1

我在 Oracler 18c DB 上进行了额外的配置测试:

使用 Oracle 客户端 12 32 位没有意义,因为它与我的配置不兼容。

编辑 2

我在 Oracler 11g DB 上进行了额外的配置测试:

问题是命令对 Oracle Client 12 和 Oracle 18c DB 区分大小写(Oracle 11g 没有问题)。 如果我用

更改我的代码
res = db.gettype("TYPE_EMPLOYEE").newobject()

工作正常