python之连接oracle数据库
环境:
windows,python2.7
1.下载cx_Oracle
在windows下不要使用easy_install或者pip,因为这样安装不会同步环境,并报错:
distutils.errors.DistutilsSetupError: cannot locate Oracle include files in...
因此下载.exe文件安装
https://pypi.python.org/pypi/cx_Oracle 下载cx_Oracle-5.2.1-12c.win-amd64-py2.7.exe (md5)
2. 下载Oracle Instant Client (32-bit)
只需要下载instantclient-basic-nt-11.2.0.3.0.zip就可以了,其它的都是一些根据不同需要扩展的包。
下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html
下载后解压到某一路径,并将该路径添加到系统的环境变量,命名为ORACLE_HOME,将ORACLE_HOME添加到path下,否则会报错
cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle
3解决中文乱码问题
3.1设置环境变量(全局,可能对其它Oracle客户端产生影响)
“计算机”->“系统属性”->“高级系统设置”->“系统属性/高级 选项卡”->“环境变量”->“系统变量”->“新建”->
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3.2python环境下设置
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' #或者os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
4连接数据库
import cx_Oracle
db = cx_Oracle.connect(username/passwd@host:port/sevicename)
cursor = db.cursor()
#其他操作
db.commit()
db.close(
不需要再本机上安装Oracle,也不需要新建NETWORK/ADMIN目录添加tnsnames.ora文件,更不要把oci.dll移到site-packages