0

我编写了一个脚本并在桌面“A”上运行它,目标是 Oracle 数据库(10g)和桌面“B”上的应用服务器。它运行没有任何问题。

然后我将脚本复制到桌面“B”并在以下代码段中吐出以下内容:“ORA-24315:非法属性类型”:

cx_dsn = cx_Oracle.makedsn(cx_hostname, cx_port, cx_SID)
cx_connection = cx_Oracle.Connection(cx_username + '/' + cx_password + '@'+ cx_dsn )

两台机器的配置如下:

  • Windows 7(64 位)
  • 32 位版本的 Python (ActiveState)
  • pypm install cx-oracle(导致版本 cx_Oracle.clientversion() = (11, 2, 0, 3, 0) - 是的,这确实表明 v11,但它适用于桌面“A”的 10g 版本)

但是桌面“B”安装了 Oracle 10g 和 WebSphere 7 - 桌面“A”没有

我已经搜索过,很多人都遇到过这个问题或类似的问题,但总的来说,唯一建议的解决方案是:

  1. 确保路径在 Python 库之前不引用 Oracle 库 - 我想这里的建议是桌面 B 上的 Oracle 安装正在干扰。所以我配置了路径,使它只引用 Python(没有提到 Oracle 等)——这没有帮助
  2. 确保您使用的是 32 位版本的所有内容或 64 位版本的所有内容 - 我做过,就 Python 而言,全面使用 32 位版本
  3. 确保 cx-Oracle 与您所针对的数据库匹配...好吧,看起来我有问题但是...奇怪的是脚本确实可以在桌面“A”上运行,所以我想它一定是环境上的桌面'B'。所以我开始安装专用的 10g 版本的 cx_Oracle。也没有成功。(此查询https://stackoverflow.com/questions/10456598/cx-oracle-multiple-instances-of-oracle-10-and-11-plus-oracle-home没有得到回答,但听起来很相似)

所以我被困住了 - 有什么建议吗?

4

2 回答 2

0

在安装另一个不同版本的 Oracle 客户端后,我们遇到了 ORA-24315 错误。在 PATH 环境变量中,我们只是更改了 Oracle 路径条目的顺序。可能 cx_Oracle 只考虑 Oracle 在 PATH 变量中的第一次出现。

我们的配置:Win 7、Oracle 11.2.0.3、cx_Oracle-5.1.1-11g.win32-py2.6

更改:另外安装了 Oracle 10.2.0

产生的错误消息:cx_Oracle.DatabaseError: ORA-24315: 非法属性类型

我们如何让它再次工作:将 PATH 顺序从 path_to_Oracle10;path_to_Oracle11;... 更改为 path_to_Oracle11;path_to_Oracle10;...

于 2015-01-12T12:54:53.613 回答
0

无论我如何尝试连接,我都会收到错误ORA-24315 。

解决方案:

我最初下载/安装的是 Ora11g 版本,但数据库是 10g。我安装了10g版本的cx_Oracle,第一次连接就成功了。

于 2017-01-28T07:18:43.053 回答