oracle execute immediate执行多条语句_Python操作数据库(Oracle)

本文介绍了Python连接Oracle数据库的相关操作。需安装cx_Oracle模块和Oracle Client,下载对应版本的instantclient - basic并复制相关dll文件到Python安装目录。连接数据库有三种方式,还提到创建游标执行SQL语句、关闭游标和连接,以及处理查询结果乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 安装cx_Oracle
  2. Python 连接oracle不仅需要安装cx_Oracle模块,还需要Oracle Client;在oracle官网上下载instantclient-basic,注意对应版本号,然后解压文件,把其中的oci.dll,oraocci12.dll,oraociei12.dll,oraons.dll(12是我下载的版本号)文件复制到Python安装目录libsite-packages下,然后再下载安装cx_Oracle模块
1a575b9866d855a35f76b9c0a4680fa8.png

2.连接数据库

连接数据库有三种方式:

(1)用户名、密码和监听写在一起(user/passwd@host/orcl)

import cx_Oracle as dbconn = db.connect('user/passwd@host/orcl')

(2)用户名、密码和监听分开(‘user’,‘passwd’,'host/orcl')

import cx_Oracle as dbconn = db.connect('user','passwd','host/orcl')

(3)配置监听并连接(makedsn('host',1521,'orcl')

import cx_Oracle as dbtns = 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'
114605f8d865c84f0f5b1c1f3f48949c.png

该图为oracle的字符编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值