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() #最后记得关闭游标和数据库连接