#!/usr/bin/python
#coding=utf8
import os,sys
import cx_Oracle as cx_ora
os.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.UTF8'
class oracleDML():
def __init__(self,username='dbaro',passwd='VgcAv1f4JNRvqMokXS9v',dbdomain='192.168.2.83',port='1555',sid='slave'):
self.username=username
self.passwd=passwd
self.dbdomain=dbdomain
self.port=port
self.sid=sid
self.conn=''
self.sql=''
self.desc=''
self.records=''
print "this is a object init"
def connDB(self):
tns=cx_ora.makedsn(self.dbdomain,self.port,self.sid)
self.conn=cx_ora.connect(self.username,self.passwd,tns)
def queryColumn(self):
##self.sql=sql,sql放到这里初始化不方便,直接使用对象引用变量
cur=self.conn.cursor()
cur.execute(self.sql)
self.desc=cur.description
cur.close()
def closeDB(self):
self.conn.close()
def queryRecord(self):
cur=self.conn.cursor()
cur.execute(self.sql)
self.records=cur.fetchall()
cur.close()
def writeRecord(self):
for item in range(len(self.desc)):
print "%-25s" %(self.desc[item][0]),
print ##每打印一条记录,需要换行
for record in self.records:
for colvalue in record:
print "%-25s" %str(colvalue),
print
def readsqltext(readfn,oraobject):
fobj=open(readfn,'r')
sqls=fobj.read().split(';')
fobj.close()
for incre in range(len(sqls)-1):
oraobject.sql=sqls[incre]
oraobject.queryColumn()
oraobject.queryRecord()
oraobject.writeRecord()
if __name__=='__main__':
oraobj=oracleDML()
print "---------------"
oraobj.connDB()
readsqltext('/root/workdir/oracledml.sql',oraobj)
将oracle dml操作封装为类,成为一个模块
最新推荐文章于 2024-06-20 22:30:37 发布