python鏈接Oracle工具類

上代碼:sql

# -*- coding:utf-8 -*-
 
import cx_Oracle
import pandas as pd

class ORACLE(object):
    def __init__(self,host,db,user,pwd):
        self.host = host
        self.user = user
        self.pwd = pwd
        self.db = db
 
    def __GetConnect(self):
        if not self.db:
            raise(NameError,"沒有設置數據庫信息")
        self.conn = cx_Oracle.connect(self.user+'/'+self.pwd+'@'+self.host+'/'+self.db) 
        cursor = self.conn.cursor()
        if not cursor:
            raise(NameError,"鏈接數據庫失敗")
        else:
            return cursor
 
    def ExecQuery(self,sql):
        cursor = self.__GetConnect()
        cursor.execute(sql)
        # 調出數據
        resList = cursor.fetchall()
 
        #查詢完畢後必須關閉鏈接
        self.conn.close()
        return resList

    def ExecQueryToDataFrame(self,sql):
        cursor = self.__GetConnect()
        cursor.execute(sql)
        # 調出數據
        resList = cursor.fetchall()
        # cols爲字段信息 例如((''))
        cols = cursor.description 
        #查詢完畢後必須關閉鏈接
        self.conn.close()

        # 將數據轉換爲DataFrame
        col = []
        for i in cols:
            col.append(i[0])
        data = list(map(list, resList))
        data = pd.DataFrame(data,columns=col) 

        return data
 
    def ExecNonQuery(self,sql):
        cursor = self.__GetConnect()
        cursor.execute(sql)
        self.conn.commit()
        self.conn.close()

 

若是對您有幫助,請贊助根棒棒糖~數據庫

相關文章
相關標籤/搜索