python操作oracle数据库详解编程语言

1、首先要下载安装cx_Oracle

      注意:下载的cx_Oracle版本要与自己的python环境版本一致,否则可能连接数据库时报错。
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([email protected]/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])

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8169.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论