python3连接oracle数据库配置
本文主要介绍在windows下配置环境
1.软件环境
1.1. 查询oralce版本(位数):
select * from v$version
1.2. 查询python版本(位数):
在cmd中,输入python -V
注意: 保证python与oracle位数相同(都为64位或者都为32位)
2.cx_oracle安装
cx_oracle的安装方式可以选择以下两种方式:
方法一:
使用pip install cx_oracle安装
方法二:
下载对应的安装包:https://pypi.org/project/cx_Oracle/#files
pip install (下载文件路径)
注意: cx_oracle, python, oracle三者的位数必须保持一直。
3.数据库连接
import cx_Oracle
conn = cx_Oracle.connect('用户名/密码@主机ip地址/服务名')
cur = conn.cursor() #创建游标
sql = 'SELECT * FROM TEST'
cur.execute(sql) #执行sql语句
rows = cur.fetchall() #获取数据 #也可以使用fetchmany(100),fetchone()
cur.close()
conn.close() #关闭数据库连接
运行上述代码可能会报错:
DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded
此时需要下载instantclient,地址如下:
https://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html
下载相应位数的instantclient,并解压,如解压到D:\oracleclient,然后修改环境变量,右键“我的电脑-属性-高级系统设置-环境变量”,增加:
1)变量名:ORACLE_HOME 变量值 D:\oracleclient
2) 变量名:TNS_ADMIN 变量值 D:\oracleclient
3)变量名:NLS_LANG 变量值 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
修改path变量: 在path后面添加 D:\oracleclient
注意事项: 环境变量中可能已经添加了多个instantclient路径,此时需要删除多余的路径,不然会报错:
cannot access nls data files or invalid environment specified