- # 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()
- 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)
来源: http://www.bubuko.com/infodetail-2988974.html