龙空技术网

python安装cx_Oracle

零辰4点 347

前言:

当前兄弟们对“oracle导出数据为csv文件”大概比较注意,看官们都需要知道一些“oracle导出数据为csv文件”的相关文章。那么小编也在网络上网罗了一些对于“oracle导出数据为csv文件””的相关资讯,希望小伙伴们能喜欢,兄弟们一起来学习一下吧!

CX_Oralce的安装

前言:

由于要进行ORACLE大量数据的导出,本身ERP系统在前台并不支持。肯定会超时,而直接用PLSQL DEV进行导出到EXCEL里,又会内存溢出,如果细分SQL进行导出,又会浪费大量人力和时间。曾经进行用PLSQL DEV导出600+M的数据,两天内只能干眼瞪,全部内存都给PLSQL DEV来处理数据了。所以打算用PYTHON连接数据库,细分SQL,写入CSV来进行导出,而PYTHON要用到cx_Oracle来处理ORACLE。网上虽然有教程,但是有各种问题。

环境:

OS:windows7 64位

Python:3.5.1 64位

IDE:pycharm ce 2016.1.2

ORACLE:32位客户端完整版,64位客户端基础包。

(instantclient-base-windows.x64-12.1.0.2.0),ORACLE SDK,oci.lib

PLSQL DEV:32位

VISUAL STUDIO 2012

重点难点:

由于cx_Oracle并不是一个独立的包,而是利用ORACLE本身的OCI.DLL和VISUAL STUDIO来进行编译的,所以需要用到ORACLE和VISUAL STUDIO,(VISUAL STUDIO可以换成MINGW来COMPLIE)

1.Q:开始用EXE安装,不知道为什么在本机没法用方式来安装,点击后没反应,放在DOS里也没有反应

A:用cx_Oracle源码来安装

由于在公司主要是用PLSQL来开发存储过程,用到PLSQL DEV这个IDE,这个只有32位,对应的ORACLE也是32位,装的是完全版本,所以自动设置ORACLE的环境变更了

2.Q:进行python的标准安装,无法找到vcvarsall.bat.

A:

MSC表示PYTHON对应VS编译的版本,安装了VS后,会有一个环境变量,如VS100COMNTOOLS。如果不清楚V.1600对应的是VS100COMNTOOLS,还是VS90COMNTOOLS.可以无脑地添加90-150的VS90COMNTOOLS。想知道vcvarsall.bat。有什么作用,建议学习一下platform sdk的编译原理,这里简明说明一下就是VS临时设置的环境变量,指定了编译器和连接器等信息。

3.Q:设置VS90COMNTOOLS后,python还是没有找到vcvarsall.bat?

A:当时用32位phthon+32位oracle+64位的windows7,配置上面的还是没有找到vcvarsall.bat,

后来重装了64位的python,就没有问题了,所以要用python+vs+os要一致是64位或32位。

4.Q:VS没法找到OCI.H?

A:下载ORACLE SDK放到ORACLE的安装包下的BIN下面。

5.Q:VS没法找到OCI.LIB?

A:下载OCI.LIB放到ORACLE的安装包下的OCI.DLL同一目录下。

6.Q:安装成功后,import cx_Oracle,然后运行,报DLL load错误?

A:由于python是64位,oracle32位,当然会报错.在网上找了好久,得到的方法都不行。网上把64位的OCI.DLL放在C:\PYTHON34\LIB\SITE-PACKAGES下。不行。phthon仍然没有找到这个64位的OCI.DLL,把这个文件指定到环境变量也不行。后来把ORACLE下的OCI.DLL下的替换成64位的OCI.DLL。成功,但是PLSQL DEV从此失败,所以还是不行。后来把OCI.DLL放在cx_Oracl的文件包下,成功。plsql dev也没有异常。

如下:

所以得出结论,并不是放在\site-packages下,而是cx_Oracle.pyr的同目录下。

7.Q:connect失败?tns没法识别?

A:当然就想会不会是同上面的方式一样,所以在xc_Oracle.py的同目录下建了一个ORACLE的TNS的文件。

到此,安装测试完毕,总结就是要安装两个ORACLE,plsql dev32位+oracle+32位,

python 64位+oracle 64位配合操作。后面操作数据库的事,就交给大家看API文档了。

有什么问题,大家可以留言,我知道定会回答你们。

标签: #oracle导出数据为csv文件 #win7cxoracle安装教程 #32位安装64位oracle #oracle 导出csv #linux命令oracle导入csv文件