如何用python通过cx_Oracle操作oracle

import cx_Oracle as oracle
from pprint import pprint

db = oracle.connect('账号/密码@ip:端口/数据库实例名')

# db = oracle.connect('账号', '密码', 'ip:端口/数据库实例名')

# tns= oracle.makedsn('ip', '端口', '数据库实例名')
# oracle.connect('账号', '密码', tns)

cur = db.cursor()# 创建游标


def search():
    '''查询'''
    search = '''
    select *
    FROM 表名
    WHERE 字段= '111'
    '''
    row = cur.execute(search)
    ct = cur.fetchall()
    pprint(ct)
    cur.close()  # 关闭游标
    db.close()  # 关闭连接

def search1():
	'''查询'''
    search = cur.prepare('select * from 表名 a where a.字段=:参数')
    row = cur.execute(None,{'参数':111})
    ct = cur.fetchall()
    # ct = cur.fetchone()# 只有一条结果
    pprint(ct)
    cur.close()  # 关闭游标
    db.close()  # 关闭连接

Oracle数据库操作类

#coding=utf-8
import cx_Oracle
class Oracle():
    def __init__(self,ora_username,ora_password,ora_host,ora_port,ora_sid):
        '''初始化Oracle连接'''
        self.db=cx_Oracle.connect(ora_username,ora_password,ora_host+':'+ora_port+'/'+ora_sid)
        self.cur=self.db.cursor()
    def Ora_Select(self,strSql):
        '''执行strSql语句进行查询'''
        self.cur.execute(strSql)
        return self.cur.fetchall()
    def Ora_IUD_Single(self,strSql):
        '''执行strSql语句进行增加、删除、修改操作'''
        self.cur.execute(strSql)
        self.db.commit()
    def Ora_IUD_Multi(self,strSql,List):
        '''执行strSql语句进行增加、删除、修改操作,对应参数使用List中的数据'''
        self.cur.prepare(strSql)
        self.cur.executemany(None,List)
        self.db.commit()
    def Ora_Cur_Close(self):
        '''关闭游标'''
        self.cur.close()
    def Ora_db_Close(self):
        '''关闭Oracle数据库连接'''
        self.db.close()

这段代码保存在OpOracle.py文件中,使用时直接导入这个文件即可。如:

from OpOracle import OpOracle
ora=Oracle('cs','ceshi','192.168.1.226','1521','db_emp')
l_emp=ora.Ora_Select('select * from t_emp')    #查询t_emp表的数据并保存到l_emp列表中
ora.Ora_IUD_Single('delete from t_emp a where a.empid=1')  #删除empid为1的记录
ora.Ora_Cur_Close()
ora.Ora_db_Close()     #最后记得关闭游标和数据库连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值