也谈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

有时候专注也能让人幸福,游戏读书莫不如此,专注之人必有动人之处。
原文地址:https://www.cnblogs.com/pcode/p/2992695.html