Python连接Oracle

本地安装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")

扫描二维码关注公众号,回复: 1472686 查看本文章

先尝试能否执行,若不行,通过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)

猜你喜欢

转载自blog.csdn.net/chroje/article/details/80413390