当前环境:Linux Centos 7python
cx_Oracle
因为我本地Python
版本是2.7
,因此选择是2.7
版本linux
wget https://pypi.python.org/packages/e1/18/00987c6a9af9568ee87d1fcba877407684a3f1b87515e5eb82d5d5acb9ff/cx_Oracle-6.0rc1-py27-1.x86_64.rpm#md5=ff8f5cce07bd5ec8ed3ce5c79d451474
参考:git
cx_Oracle
rpm -ivh cx_Oracle-6.0rc1-py27-1.x86_64.rpm
python
引入模块库的路径[root ~]# python Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print sys.path ['', '/usr/lib/python2.7/site-packages/AliyunUtil-0.0.1-py2.7.egg', '/usr/lib/python2.7/site-packages/cloud_init-0.7.6-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages']
cx_Oracle.so
文件不在以上python
引入路径内须要将该文件拷贝到以上python
引入路径,因此我这里不须要进行拷贝操做[root ~]# rpm -qa | grep cx_Oracle | xargs rpm -ql /usr/lib64/python2.7/site-packages/cx_Oracle-6.0rc1-py2.7.egg-info /usr/lib64/python2.7/site-packages/cx_Oracle-6.0rc1-py2.7.egg-info/PKG-INFO /usr/lib64/python2.7/site-packages/cx_Oracle-6.0rc1-py2.7.egg-info/SOURCES.txt /usr/lib64/python2.7/site-packages/cx_Oracle-6.0rc1-py2.7.egg-info/dependency_links.txt /usr/lib64/python2.7/site-packages/cx_Oracle-6.0rc1-py2.7.egg-info/top_level.txt /usr/lib64/python2.7/site-packages/cx_Oracle.so
Oracle Library
因为Oracle
官网下载东西存在Auth
认证,因此简单点就点击选中的rpm
包保存在windows
上,而后上传到linux
上便可
注意:github
- 下载的版本要和链接的
Oracle
基本一致,我须要链接的Oracle版本是11.2,因此我下载的是oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
- 操做系统要和以前下载的
cx_Oracle
要一致,这很重要!!!我在这个上面栽了跟头,花了比较多的时间。。。因此我须要下载64
位的- 在
Oracle
官网下载东西你得先勾选Accept License Agreement
,不然你下载不了- 其次你得有
Oracle
的帐号
Oracle Library
rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
Oracle
安装路径client64
改成client
,至于为何要改暂时还不清楚,只知道不改的话会报错Oracle Client library cannot be loaded: libclntsh.so: cannot open shared object file: No such file or directory
cd /usr/lib/oracle/11.2/ mv client64 client
~/.bashrc
,追加环境变量路径vim ~/.bashrc
// 查看Oracle安装路径 [root@iZbp180vortqapb7yf8217Z ~]# rpm -qa | grep oracle | xargs rpm -ql /usr/lib/oracle/11.2/client64/bin/adrci /usr/lib/oracle/11.2/client64/bin/genezi /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 /usr/lib/oracle/11.2/client64/lib/libnnz11.so /usr/lib/oracle/11.2/client64/lib/libocci.so.11.1 /usr/lib/oracle/11.2/client64/lib/libociei.so /usr/lib/oracle/11.2/client64/lib/libocijdbc11.so /usr/lib/oracle/11.2/client64/lib/ojdbc5.jar /usr/lib/oracle/11.2/client64/lib/ojdbc6.jar /usr/lib/oracle/11.2/client64/lib/xstreams.jar // 追加ORACLE_HOME环境变量路径 export ORACLE_HOME=/usr/lib/oracle/11.2/client export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
source ~/.bashrc
cx_Oracle
import
没有报错,说明以前的辛苦没有白费vim
[root client64]# python Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import cx_Oracle >>>
Oracle
一个插入n
条数据的Python
脚本:windows
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys import cx_Oracle import time rows = int(sys.argv[1]) con = cx_Oracle.connect('test/test@sampledb') cur = con.cursor() cur.execute("SELECT MAX(ID) FROM PTTEST") max_id = cur.fetchone()[0] or 0 start_id = max_id + 1 for i in xrange(rows): cur.execute("INSERT INTO PTTEST (ID, NAME, AGE, GENDER, SALARY)VALUES(%d, 'pt', 15, 'male', 50000)" % int(i + start_id)) if i % 100 == 0: time.sleep(3) print 'Insert rows [%d]:%d' % (int(time.time()), i) con.commit() cur.close() con.close()