美文网首页数据库相关我爱编程
Windows系统安装cx_Oracle、Oracle客户端及P

Windows系统安装cx_Oracle、Oracle客户端及P

作者: 扫地僧不伤蝼蚁命 | 来源:发表于2016-10-31 21:51 被阅读291次

    注:本文档适用于Windows7 64位系统,Python2.7 64位。


    一、安装cx_Oracle及对应的Oracle客户端

    1. 安装cx_Oracle, 这个是一个Python的扩展包,用来访问Oracle数据库的。Windows的安装文件可以到http://cx-oracle.sourceforge.net/这里去下载。
    2. 下载Oracle 64位客户端(Oracle Instant Client),这个是Python扩展包所需要的。可以到http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html去下载,下载后解压到本地磁盘(例如:D:\PLSQL\instantclient_11_2_64),把路径加入到环境变量的path中。同时在系统环境变量中添加NLS_LANG,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,以便支持中文。
      注:客户端字符集要与服务器一致,才能正确显示数据库的非Ascii字符,但是语言设置可以不同,因此NLS_LANG也可以设为American_American.ZHS16GBK。字符集查询见附录。
    3. 在D:\PLSQL\instantclient_11_2_64\NETWORK\ADMIN添加tnsnames.oRA文件。新建一个叫tnsnames.ora的文件,内容如下:
      TESTDB= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)) (CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=TESTDB) ) ) ORACLR_CONNECTION_DATA= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)) ) (CONNECT_DATA= (SID=CLRExtProc) (PRESENTATION=RO) ) )
    4. 编写测试代码:
      importcx_Oracle db_conn=cx_Oracle.connect(“user/pass@tnsname.world”)

    二、安装plsql developer及其对应Oralce客户端

    1. 安装PLSQL Developer,这是一个Oracle可视化软件,用来操作Oracle数据库。
    2. 下载Oracle 32位客户端(Oracle Instant Client),目前plsql只支持Oracle 32客户端。可以到http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html去下载。下载后解压到本地磁盘(例如:D:\PLSQL\instantclient_11_2_32),把路径加入到环境变量的path中。
    3. 配置tnsnames.ora文件,内容同(一、)中第3项。
    4. 启动PLSQL,在"工具"->"首选项"->"Oralce"->"连接"中配置"Oracle主目录名"为'D:\PLSQL\instantclient_11_2_32'和"OCI库"为'D:\PLSQL\instantclient_11_2\oci.dll'。
    5. 在"工具"->"首选项"->"Oracle"->"登录历史"中配置"固定用户",格式为"用户名/密码@数据库名称",如:"test/test@TESTDB"

    三、可能会遇见的bug及解决方法

    1. 如果只安装Oracle 32位客户端(Oracle Instant Client),PLSQL可以正常使用,但是cx_Oracle会报错,内容如下:
      import cx_Oracle Traceback(most recent call last): File"",line1,in ImportError:DLL load failed:%1不是有效的Win32应用程序。
      解决方法:
    • 安装64位的oracle client,上述(一)(二)中描述的即为此方法。
    • 拷贝一个64位的 oci.dll 到%python_home%\Lib\site-packages 下

    四、附录

    1. 数据库字符集查询:select * from nls_database_parameters
    2. 客户端字符集查询:select * from nls_instance_parameters
    3. 会话字符集:select * from nls_session_parameters* 或 *select * from v$nls_parameters,如无特殊设置,应与nls_instance_parameters一致。

    相关文章

      网友评论

        本文标题:Windows系统安装cx_Oracle、Oracle客户端及P

        本文链接:https://www.haomeiwen.com/subject/bywputtx.html