python 연결 데이터베이스 보고서

2118 단어 python 의 길
python  oracle    ,  sql  , ;  ,    sql,          
#!/usr/bin/python
#coding=utf8
###                 ,    
import cx_Oracle as cx_ora
import os

#os.environ['NLS_LANG']="SIMPLIFIED CHINESE_CHINA.UTF8"
os.environ['NLS_LANG']="AMERICAN_AMERICA.AL32UTF8"

def connDB(username='dbaro',passwd='VgcAv1f4JNRvqMokXS9v',dbdomain='192.168.54.21',port='1521',sid='slave'):
        tns=cx_ora.makedsn(dbdomain,port,sid) #  makedsn  tns_name
        conn=cx_ora.connect(username,passwd,tns)
        return conn

def closeDB(conn):
        conn.close()
def queryColumn(conn,sql):
        cur=conn.cursor() ##      
        cur.execute(sql)
        desc=cur.description
        cur.close()
        return desc

def queryRecord(conn,sql):
        cur=conn.cursor()
        cur.execute(sql)
        records=cur.fetchall()
        cur.close()
        return records

def deleteData(conn,sql):
        cur=conn.cursor()
        cur.execute(sql)      
        cur.close()
        conn.commit()

def insertDatas(conn, sql, results): ##     ,      
        cur = conn.cursor()
        cur.prepare(sql)
        cur.executemany(None, results)
        cur.close()
        conn.commit()
        
def writeRecord(conn,readfn):
        fobj=open(readfn,'r')
        sqls=fobj.read().split(';')
        fobj.close ##        

        ###conn=connDB() ##       
        for incre in range(len(sqls)-1): ##     sql  
                columns=queryColumn(conn,sqls[incre])
                for item in range(len(columns)):
                        print("%-18s" %(columns[item][0])),
                ##print   os.linesep
                print

                records=queryRecord(conn,sqls[incre])
                for record in records:
                        for colvalue in record:
                                print("%-20s" %(str(colvalue))),
                        ##print   os.linesep
                        print
                print
        ##closeDB(conn) ##               
        print
        fobj.close()

좋은 웹페이지 즐겨찾기