暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python操作数据库(Oracle)

每日一Python 2017-09-27
654
  1. 安装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的字符编码






文章转载自每日一Python,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论