连接时有时出现cx_Oracle错误ORA-24315

时间:2012-10-08 21:16:40

标签: python oracle cx-oracle

我编写了一个脚本并在桌面'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版本起作用了)< / LI>
然而,桌面'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 个答案:

答案 0 :(得分:0)

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

我们的配置: 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; ...

答案 1 :(得分:0)

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

解决方案:

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