Windows平台cx_Oracle各种连接不上Oracle服务端的问题总结

来源:互联网 发布:nginx 配置 80端口 编辑:程序博客网 时间:2024/05/21 09:30

本人实际开发环境为Win7_64bit+eclipse(Helios Service Release 2)+Pydev(最新的)+cx_Oracle10(cx_Oracle-5.1-10g.win32-py2.7)+python2.7(32bit)+服务器端Oracle版本为10.2.0.4.0 - 64bit。

1、首先确定你用本机安装的oracle客户端(服务端包含客户端)还是从oracle官网下载的instantclient_10_2。下面分类说明:

1.1、使用本机安装的oracle客户端:检查tnsnames.ora文件配置是否正确,如下

ODSDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ***.***.***.***)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ODSDB)
    )
  ),cx_Oracle的connect方法使用上面红色标注的服务名称,标注蓝色的为服务器端的服务名称。

1.1.1、设置ORACLE_HOME,按照实际路径设置;如:d:\oracle\product\11.2.0\dbhome_1。

1.1.2、把d:\oracle\product\11.2.0\dbhome_1\bin下面关于oracle通信的两个dll文件(oci.dll和oraociei10.dll)拷贝到python路径(C:\Python27\Lib\site-packages)下面。

1.1.3、经过以上步骤,测试程序就可以正常通过了。如果不行,可以跟帖留言。

1.2、使用绿色客户端instantclient_10_2:同样的检查tnsnames.ora文件配置是否正确。

1.2.1、设置ORACLE_HOME,按照实际路径设置;如:d:\instantclient_10_2。

1.2.2、同1.1.2步骤。

2、cx_Oracle ORA-24315: 非法的属性类型错误,为cx_Oracle版本与使用的oracle客户端版本或者绿色版本不一致。

3、ORA-12154: TNS: 无法解析指定的连接标识符错误,为1.1或者1.2环节出了错,仔细检查!

4、我本机安装了oracle11gr2的服务端,用cx_Oracle和绿色客户端10g的版本通过了连接测试!这个结果比较意外。