本地安装cx_Oracle
python -m pip install cx_Oracle --upgrade
在python shell界面cx_Oracle,若无报错则安装成功
本地安装Oracle客户端
下载Oracle对应版本的客户端,高版本客户端可以连接低版本数据库,但是低版本客户端不能连接高版本数据库,且位数版本要与python相对应,如python为64位则安装64位客户端
如instantclient-basic-windows.x64-11.2.0.4.0.zip
64位地址http://www.oracle.com/technetwork/topics/winx64soft-089540.html
32位地址http://www.oracle.com/technetwork/topics/winsoft-085727.html
下载完成后解压,将目录添加到环境变量Path中
如D:\Python\Python36-64\Python-Oracle\instantclient_11_2
如果本地安装了Oracle数据库,则应该把路径上移到ORACLE_HOME之前
在instantclient_11_2目录中创建network目录,在network目录创建admin目录。
Python连接Oracle
#connection = cx_Oracle.connect("upgcjx", "upgcjx", "10.10.10.13/testdb11g")
先尝试能否执行,若不行,通过tns连接
在network\admin创建文件tnsnames.ora
内容为
修改三个地方,第一行改为你连接的sid,第四行修改HOST = 你连接的IP地址,
SERVICE_NAME = 你想连接的sid
orcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.13 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl ) ) ) |
连接代码修改为
dsn_tns = cx_Oracle.makedsn(ip , port, sid)
connection = cx_Oracle.connect(username, password, dsn_tns)
官网代码为
# myscript.py from __future__ import print_function import cx_Oracle # Connect as user "hr" with password "welcome" to the "oraclepdb" service running on this computer.connection = cx_Oracle.connect("hr", "welcome", "localhost/orclpdb") cursor = connection.cursor()cursor.execute(""" SELECT first_name, last_name FROM employees WHERE department_id = :did AND employee_id > :eid""", did = 50, eid = 190)for fname, lname in cursor: print("Values:", fname, lname) |