- 安装cx_Oracle
- Python 连接oracle不仅需要安装cx_Oracle模块,还需要Oracle Client;在oracle官网上下载instantclient-basic,注意对应版本号,然后解压文件,把其中的oci.dll,oraocci12.dll,oraociei12.dll,oraons.dll(12是我下载的版本号)文件复制到Python安装目录\lib\site-packages下,然后再下载安装cx_Oracle模块
2.连接数据库
连接数据库有三种方式:
(1)用户名、密码和监听写在一起(user/passwd@host/orcl)
import cx_Oracle as db conn = db.connect('user/passwd@host/orcl')
(2)用户名、密码和监听分开(‘user’,‘passwd’,'host/orcl')
import cx_Oracle as db conn = db.connect('user','passwd','host/orcl')
(3)配置监听并连接(makedsn('host',1521,'orcl')
import cx_Oracle as db tns = db.makedsn('host','1521','orcl') conn = db.connect('user','passwd',tns)
3.创建cursor,执行sql语句
cur = conn.cursor() cur.execute('select * from table') result = cur.fetchall() #获取全部查询结果 re1 = cur.fetchone() #获取第一行查询结果,没执行一次,游标就从表中第一条数据移动到下一条,即再执行的时候就得到第二条数据,第三次执行的时候就得到第三条数据;
4.关闭游标,关闭连接
cur.close() conn.close()
操作整体流程是:
import cx_Oracle # 导入库 conn = cx_Oracle.connect('user','passwd','host/orcl') #连接数据库 cur = conn.cursor() #创建游标 sql = 'select /insert/delete .......' #sql语句 cur.execute(sql) #执行sql语句 result = cur.fetchall()/fetchone() #获取数据 cur.close() #关闭游标 conn.close() #关闭数据库
如果查询出来的结果有乱码问题,python源文件的字符集密码和oracle不一致,可以在建立连接前添加:
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.AL32UTF8' 或者os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
该图为oracle的字符编码
本文暂时没有评论,来添加一个吧(●'◡'●)