我编写了一个脚本并在桌面“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”没有
我已经搜索过,很多人都遇到过这个问题或类似的问题,但总的来说,唯一建议的解决方案是:
- 确保路径在 Python 库之前不引用 Oracle 库 - 我想这里的建议是桌面 B 上的 Oracle 安装正在干扰。所以我配置了路径,使它只引用 Python(没有提到 Oracle 等)——这没有帮助
- 确保您使用的是 32 位版本的所有内容或 64 位版本的所有内容 - 我做过,就 Python 而言,全面使用 32 位版本
- 确保 cx-Oracle 与您所针对的数据库匹配...好吧,看起来我有问题但是...奇怪的是脚本确实可以在桌面“A”上运行,所以我想它一定是环境上的桌面'B'。所以我开始安装专用的 10g 版本的 cx_Oracle。也没有成功。(此查询https://stackoverflow.com/questions/10456598/cx-oracle-multiple-instances-of-oracle-10-and-11-plus-oracle-home没有得到回答,但听起来很相似)
所以我被困住了 - 有什么建议吗?