1、首先要下载安装cx_Oracle
注意:下载的cx_Oracle版本要与自己的python环境版本一致,否则可能连接数据库是报错。
2、数据库表结构
3、python代码
# -*- mode: python; coding: utf-8 -*- # # python operate oracle, contain insert、delete、update、select. # # @author liyulin # @date 2014-11-07 import cx_Oracle class PythonOralceUtil: def __enter__(self): self.conn = cx_Oracle.connect('testuser/testpwd@localhost/CHROMEBOOK') self.cursor = self.conn.cursor() return self def __exit__(self, type, value, traceback): self.cursor.close() self.conn.close() ############################################ # 查询reg_codes中的所有数据 ############################################ def queryAll(self): self.cursor.execute('select * from reg_codes') results = self.cursor.fetchall() for result in results: print result ############################################ # 根据序号查询reg_codes中的一条数据 ############################################ def queryBySeq(self, seq): self.cursor.execute('select * from reg_codes where seq=:1', seq) result = self.cursor.fetchone() if (result is not None): for index in range(0,6): print result[index], ############################################ # 向reg_codes中插入N条数据 ############################################ def insertManay(self, insertValue): self.conn.begin() try: self.cursor.executemany('insert into reg_codes(device,unique_code,group_code,input_file,sn,input_ts) values(:1,:2,:3,:4,:5,sysdate)', insertValue) except AssertionError: self.conn.rollback() raise Warning, "invalid insertValue (%s)" % insertValue self.conn.commit() ############################################ # 更新reg_codes中一条数据 ############################################ def updateOne(self, sqe, input_file): updateValue = [input_file, sqe] self.cursor.execute('update reg_codes set input_file=:1 where seq=:2', updateValue) ############################################ # 更新reg_codes中N条数据 ############################################ def updateManay(self, updateValues): self.conn.begin() try: self.cursor.executemany('update reg_codes set input_file=:1 where seq=:2', updateValues) except AssertionError: self.conn.rollback() raise Warning, "invalid insertValue (%s)" % updateValues self.conn.commit() ############################################ # 删除reg_codes中一条数据 ############################################ def delete(self, sqe): self.cursor.execute('delete from reg_codes where seq=:1', sqe) ############################################ # 删除reg_codes中N条数据 ############################################ def deleteManay(self, seqs): self.conn.begin() try: self.cursor.executemany('delete from reg_codes where seq=:1', seqs) except AssertionError: self.conn.rollback() raise Warning, "invalid seqs (%s)" % seqs self.conn.commit() ############################################ # 执行代码 ############################################ with PythonOralceUtil() as pythonOralceUtil: # insertValue = [['jerry', 'unique_code2333', 'group_code2333', 'debug233', '1111111111122'], # ['jerry', 'unique_code244', 'group_code244', 'debug244', '22222222233'], # ['jerry', 'unique_code255', 'group_code255', 'debug255', '33333333344'], # ['jerry', 'unique_code266', 'group_code266', 'debug266', '44444444455'], # ['jerry', 'unique_code277', 'group_code277', 'debug277', '55555555566']] # pythonOralceUtil.insertManay(insertValue) # pythonOralceUtil.updateOne('27', 'debug_updated') # pythonOralceUtil.delete([27]) # pythonOralceUtil.deleteManay([[31],[44],[45]]) updateValues = [['debug_updated', '46'], ['debug_updated', '47'], ['debug_updated', '48'], ['debug_updated', '34']] pythonOralceUtil.updateManay(updateValues) pythonOralceUtil.queryAll() pythonOralceUtil.queryBySeq([27])
原文地址:http://blog.csdn.net/class_horse/article/details/40890107