• 也谈windows下cx_Oracle的配置,环境连接乱码种种问题最终解决


    1.问题

    手上有一个数据很齐备的oracle10G的数据库,使用python安装cx_Oracle读取一直有DLL或者其他问题,无奈环境都是win平台,总不能为了一个读取切换系统啊。闲置好久,时不时使用c#来做点事情。

    难道就不能彻底解决cx_Oracle在windows下的使用问题么?再次花了一个周六搜遍了所有中文贴,加上自己的实验终于找到一个肯定能解决问题的方法。但是还没理解原因,请实践者按我的步骤操作。

    2.环境和准备

    • activepython 2.7
    • windows 2003或xp或其他
    • oracle10G的客户端程序
    • web.py
    • cxOracle包 目前最新是5.1.2 注意是for 10G的 http://downloads.sourceforge.net/project/cx-oracle/5.1.2/cxOracle-5.1.2-10g.win32-py3.2.msi?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcx-oracle%2Ffiles%2F5.1.2%2F&ts=1363041549&use_mirror=nchc

    下面就是重点了请按步骤操作。

    我事先假定已经安装好activepython、10G客户端并且配置好了一个oracle10的数据库。 python安装在C盘的python27目录中; 我假定你的oracle客户端安装在D盘,一般目录结构是D:\oracle\product\10.2.0\client_1,

    • oracle客户端的bin目录中的oci.dll复制到C:\python27\目录。注意不是lib\site-packages;
    • 将D:\oracle\product\10.2.0\client_1\bin加入windows系统的path里(我的电脑、右键、属性、高级、环境变量、点中path点编辑,加完确定)
    • 使用默认配置安装cx_Oracle for 10g的msi包
    • bingo

    3.一些问题的解决

    不是按这个步骤配置的,可能回出现一些问题,总结如下

    • 找不到DLL的问题,原因是oci.dll没有复制或没放对地方,网上查来的资料说法不一,我告诉你放到python根目录非常好用;
    • ORA-24315 问题,原因是你使用的是pypm install cxOracle安装的cx包,或者下错了cxoracle的版本,估计下了11g的或其他的,卸载已经安装好的cx_oracle包(没办法的话就搜索删除),重新安装一下正确的msi包就好了;
    • 还有能import cx_Oracle但连接时出现其他7788的问题,这就是环境问题了,把oracle客户端的bin目录设置入path一般都能解决
    • 能连接了,发现中文乱码,可以在程序头部使用解决

      import os

      os.environ['NLSLANG'] = 'SIMPLIFIED CHINESECHINA.UTF8'

    4.收工

    以上是自己在windows下配置cx_Oracle的一些经验总结,记录留存分享。网上搜来的都是转载的多,大多没亲自实验过,希望我的总结能让有同样问题的人一站到位,少些弯路。

    【原创转载】http://www.youliaoo.com/post/30

    有时候专注也能让人幸福,游戏读书莫不如此,专注之人必有动人之处。
  • 相关阅读:
    条款十四 在资源管理类中小心copying行为
    条款八 别让异常逃离析构函数
    条款五 了解C++默默的编写并调用的哪些函数
    volatile——C++关键字(转)
    C++ auto_ptr(转)
    条款十三 以对象管理资源
    优秀文章收集(更新中..)
    条款十一 在operator = 中处理"自我赋值"
    TCP协议疑难杂症全景解析(转)
    大四的迷茫
  • 原文地址:https://www.cnblogs.com/pcode/p/2992695.html
Copyright © 2020-2023  润新知