见了很多写的很垃圾决定自己写 # coding=utf-8 import cx_Oracle import os import json os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' """python version 3.7""" class TestOracle(object): def __init__(self,user,pwd,ip,port,sid): self.connect=cx_Oracle.connect(user+"/"+pwd+"@"+ip+":"+port+"/"+sid) self.cursor=self.connect.cursor() """处理数据二维数组,转换为json数据返回""" def select(self,sql): list=[] self.cursor.execute(sql) result=self.cursor.fetchall() col_name=self.cursor.description for row in result: dict={} for col in range(len(col_name)): key=col_name[col][0] value=row[col] dict[key]=value list.append(dict) js=json.dumps(list,ensure_ascii=False,indent=2,separators=(',',':')) return js def disconnect(self): self.cursor.close() self.connect.close() def insert(self,sql,list_param): try: self.cursor.executemany(sql,list_param) self.connect.commit() print("插入ok") except Exception as e: print(e) finally: self.disconnect() def update(self,sql): try: self.cursor.execute(sql) self.connect.commit() except Exception as e: print(e) finally: self.disconnect() def delete(self,sql): try: self.cursor.execute(sql) self.connect.commit() print("delete ok") except Exception as e: print(e) finally: self.disconnect() if __name__ =="__main__": test_oracle=TestOracle('SCOTT','pipeline','127.0.0.1','1521','orcl') param=[('ww1','job003',1333,2),('ss1','job004',1444,2)] #test_oracle.insert("insert into bonus(ENAME,JOB,SAL,COMM)values(:1,:2,:3,:4)",param)#也可以下面这样解决orc-1036非法变量问题 test_oracle.insert("insert into bonus(ENAME,JOB,SAL,COMM)values(:ENAME,:JOB,:SAL,:COMM)",param) test_oracle1=TestOracle('SCOTT','pipeline','127.0.0.1','1521','orcl') test_oracle1.delete("delete from bonus where ENAME='ss1' or ENAME='ww1'") test_oracle3=TestOracle('SCOTT','pipeline','127.0.0.1','1521','orcl') js=test_oracle3.select('select * from bonus') print(js)
C:\Python37\python.exe C:/Users/Administrator/PycharmProjects/pytestframe/pyfoo/DbUtils/oracledb.py
插入ok
delete ok
[
{
"ENAME":"cdp",
"JOB":"jod_1234",
"SAL":1254,
"COMM":1
},
{
"ENAME":"cdp3",
"JOB":"job003",
"SAL":1333,
"COMM":2
},
{
"ENAME":"cdp4",
"JOB":"job004",
"SAL":1444,
"COMM":2
},
{
"ENAME":"cdp1",
"JOB":"job222",
"SAL":1235,
"COMM":2
}
]
Process finished with exit code 0