首页 > 代码库 > Ubuntu12.10下Python(cx_Oracle)访问Oracle解决方案
Ubuntu12.10下Python(cx_Oracle)访问Oracle解决方案
下载地址:http://sourceforge.net/projects/cx-oracle/files/5.1.2/,下载cx_Oracle的rmp安装文件,注意下载版本最好和Oracle、Python环境保持一致,我当前的环境是Oracle 11g和Python2.7,因此下载的是cx_Oracle-5.1.2-11g-py27-1.x86_64.rpm。
不需按RPM方式去安装,直接解压从中取出cx_Oracle.so文件(只需要这个),复制到Python环境的dist-packages目录,我的机器是/usr/local/lib/python2.7/dist-packages/。
解压命令:
rpm2cpio file.rpm | cpio -div
第二步:下载安装Oracle instant client
下载地址:http://www.oracle.com/technetwork/indexes/downloads/index.html,从Database栏目的Instant Client链接进入,按当前系统选择对应的下载,我选择的是Instant Client for Linux x86-64
解压下载文件oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm ,实际上只需要其中的so共享库文件,将所有so文件复制到一个单独路径即可,我将他们复制到/opt/oracle-instantclient11.2/lib。
应该有5个文件:
pwd/opt/oracle-instantclient11.2/liblslibclntsh.so.11.1 libnnz11.so libocci.so.11.1 libociei.so libocijdbc11.so
第三步:检查并安装libaio1
sudo apt-get install libaio1
第四步:配置环境变量
cd ~sudo vim .bashrc
把 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle-instantclient11.2/lib 这行放在里面,保存退出。
最后:测试一下
$ pythonimport cx_Oracleconn = cx_Oracle.connect(’username/pwd@ip:port/servicename’)cursor = conn.cursor()
一个简单应用:
#! /usr/bin/python#coding=UTF-8import cx_Oracledef hello(): ‘‘‘Hello cx_Oracle示例: 1)打印数据库版本信息. 2)查询表数据.‘‘‘ conn = cx_Oracle.connect("codomain/codomain@10.3.3.92:1521/oracle1") cur = conn.cursor() try: print "Oracle Version:%s" % conn.version print "Table test rows:" cur.execute(‘select * from test‘) for row in cur: print row finally: cur.close() conn.close()hello()
原文参考网站: