zoukankan      html  css  js  c++  java
  • Python Oracle连接与操作封装

    一、封装方式一

    #encoding:utf-8
    import cx_Oracle
    class Oracle_Status_Output:
        def __init__(self,db_name,db_password,db_tns):
            try:
                self.db = cx_Oracle.connect(db_name,db_password,db_tns)
                self.cursor = self.db.cursor()
            except Exception as e:
                print('Wrong')
                print(e)
        def oracle_status_select(self,sql):
            try:
                self.cursor.execute(sql)
                col=col=self.cursor.description
                v_result=self.cursor.fetchall()
                return v_result,col
            except Exception as e:
                print(e)
        def oracle_status_dml(self,sql):
            try:
                self.cursor.execute(sql)
                self.db.commit()
                print("DML OK")
            except Exception as e:
                print(e)
        def close(self):
            self.cursor.close()
            self.db.close()

    二、封装方式二

    #  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()


  • 相关阅读:
    #include <NOIP2009 Junior> 细胞分裂 ——using namespace wxl;
    【NOIP合并果子】uva 10954 add all【贪心】——yhx
    NOIP2010普及组T4 三国游戏——S.B.S.
    NOIP2010普及组T3 接水问题 ——S.B.S.
    NOIP2011提高组 聪明的质监员 -SilverN
    NOIP2010提高组 关押罪犯 -SilverN
    uva 1471 defence lines——yhx
    json2的基本用法
    获取对象的属性个数
    替换指定规则的字符串
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10570048.html
Copyright © 2011-2022 走看看