一、环境
1.1 Python 3.7.2 64位,下载地址:
https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe
1.2 Oracle客户端 64位,下载地址:
官网:http://download.oracle.com/otn/nt/instantclient/11204/instantclient-basic-windows.x64-11.2.0.4.0.zip
官网可能需要注册:https://download.csdn.net/download/weixin_40874592/10885914
1.3 注意位数一定要保持一致
二、代码
#coding=UTF-8
import cx_Oracle
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
conn=cx_Oracle.connect('用户名/密码@IP:端口号/服务名')
c=conn.cursor()
x=c.execute('select * from t_user')
while (1):
rs=x.fetchone()
if rs==None:break
print(rs)
c.close()
conn.close()
2.1 解决乱码问题
os.environ[‘NLS_LANG’] = ‘SIMPLIFIED CHINESE_CHINA.数据库编码格式’
Oracle数据库编码格式,否则查询出的数据会乱码,数据库编码格式查询
SELECT value$ FROM sys.props$ WHERE name = ‘NLS_CHARACTERSET’ ;
2.2连接
conn=cx_Oracle.connect(‘用户名/密码@IP:端口号/服务名’)
2.3 执行查询sql
x=c.execute(‘select * from t_user’)
2.4 输出
三、异常
3.1 cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: “The specified module could not be found”. See https://oracle.github.io/odpi/doc/installation.html#windows for help
解决方法一:将Oracle客户端安装路径下的所有ddl文件放到项目工作空间下
Lib\site-packages\文件夹里。
解决方法二:配置环境变量,将Oracle客户端安装路径(例:D:\SoftWare\instantclient_11_2)配置到path里。