欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python使用cx_oracle连接oracle数据库

程序员文章站 2024-03-24 20:55:58
...

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html---下载instantclient-basic-linux.x64-11.2.0.4.0
http://sourceforge.net/projects/cx-oracle/files/5.1.2/----下载cx_Oracle-5.1.2.tar.gz
https://pypi.python.org/pypi/cx_Oracle----下载cx_Oracle-5.1.2.tar.gz
linux版本号		CentOS release 6.5 (Final)
python版本号	2.6.6
oracle版本号		11.2.0.4 x86_64

1、安装oracle客户端和sdk
# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
# cp ~/instantclient_11_2/* /usr/local/oracle_instantclient_11.2.0.4_x86_64/<pre name="code" class="cpp">http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html---下载instantclient-basic-linux.x64-11.2.0.4.0
http://sourceforge.net/projects/cx-oracle/files/5.1.2/----下载cx_Oracle-5.1.2.tar.gz
https://pypi.python.org/pypi/cx_Oracle----下载cx_Oracle-5.1.2.tar.gz
linux版本号		CentOS release 6.5 (Final)
python版本号	2.6.6
oracle版本号		11.2.0.4 x86_64

1、安装oracle客户端和sdk
# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
# cp ~/instantclient_11_2/* /usr/local/oracle_instantclient_11.2.0.4_x86_64/

# unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip -d /usr/local/oracle_instantclient_11.2.0.4_x86_64/
# cp -rf include/* /usr/local/oracle_instantclient_11.2.0.4_x86_64/

2、环境变量设置
# vi /etc/profile
export ORACLE_HOME=/usr/local/oracle_instantclient_11.2.0.4_x86_64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME:/lib:/usr/lib

# source /etc/profile

3、安装cx_oracle
# tar xvf cx_Oracle-5.1.2.tar.gz 
# ln -sv /usr/local/oracle_instantclient_11.2.0.4_x86_64/libclntsh.so.11.1 /usr/local/oracle_instantclient_11.2.0.4_x86_64/libclntsh.so
# python setup.py build
# python setup.py install
Installed /usr/lib64/python2.6/site-packages/cx_Oracle-5.1.2-py2.6-linux-x86_64.egg
Processing dependencies for cx-Oracle==5.1.2
Finished processing dependencies for cx-Oracle==5.1.2

4、成功安装后进行验证
>>> import cx_Oracle




问题
1、 raise DistutilsSetupError("cannot locate an Oracle software " \
解决:须要设置oracle的环境变量LD_LIBRARY_PATH

2、cx_Oracle.c:10:17: 错误:oci.h:没有那个文件或文件夹
解决:安装oracle jdk

3、/usr/bin/ld: cannot find -lclntsh
解决:创建软链接
ln -sv /usr/local/oracle_instantclient_11.2.0.4_x86_64/libclntsh.so.11.1 /usr/local/oracle_instantclient_11.2.0.4_x86_64/libclntsh.so

4、cx_Oracle.DatabaseError: ORA-00972: identifier is too long和打印的中文字段名为???

?

# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" ##攻克了一部分问题 # export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8" ##全然攻克了问题