python3利用cx_Oracle访问Oracle数据库

Windows Server 2008 R2系统:

1、安装Oracle客户端instantclient

注意安装的版本,本人安装的是instantclient_11_1版本的,安装instantclient_12_2版本的时候会因系统解析不了dll报错。

(1)下载完成后解压到一个目录下,如:E:instantclient_11_1

(2)增加环境变量:

  TNS_ADMIN,值为E:instantclient_11_1

  NLS_LANG,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,这是为了防止中文乱码

  创建一个监听文件tnsnames.ora到E:instantclient_11_1,也可以从其他地方复制一个过来,里面的内容可以参考下面的:

 1 vcs_dev=
 2   (DESCRIPTION =
 3     (ADDRESS_LIST =
 4       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.6.1)(PORT = 1521))
 5     )
 6     (CONNECT_DATA =
 7       (SERVER = DEDICATED)
 8       (SERVICE_NAME = vcs)
 9     )
10   )
View Code

2、安装对应版本的cx_Oracle

下载地址:https://pypi.python.org/pypi/cx_Oracle/5.2.1

(1)这里Oracle客户端为11.1版本的,python为3.4版本,操作系统为64位,所以需要下载cx_Oracle-5.2.1-11g.win-amd64-py3.4.exe (md5)版本的cx_Oracle

(2)下载完成后,直接双击安装

(3)安装完成后,将客户端(即:E:instantclient_11_1目录)下的所有dll文件拷贝到python的包目录下,即C:Python34Libsite-packages文件夹下

3、使用测试

import cx_Oracle
print(cx_Oracle.clientversion())
conn = cx_Oracle.connect("用户名/密码@服务器地址/服务器名") 
cursor = conn.cursor()
cursor.execute("select address from temp_m_customer_addr_info where ID = '103791721'")
row = cursor.fetchone()
print(row)

cursor.close()
conn.close()

 Windows7系统:

Windows7可以使用instantclient_12_2版本的客户端,其它的配置和安装方法同Windows Server,特别需要注意版本的对应

原文地址:https://www.cnblogs.com/sammy1989/p/7754168.html