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])