读取oracle注释

原创
2015/10/13 10:42
阅读数 50
# coding=utf-8
__author__ = 'jspdba'
u'''
读取oracle注释
'''
import cx_Oracle    # 导入模块

SQL=r"""
select * from user_col_comments t where 1=1
and t.comments is not null
and t.table_name = '@TABLE'
"""
words=["custom","code","trans","mode","date","confirm","balance","amount","after",
       "type","area","game","flow","is","big","win","status","flag","num","client",
       "reward","id","before","sum","check","time","name","channel","father","content",
       "open","bet","cash","pay","open"]
def conn():
    db = cx_Oracle.connect('username', 'password', '192.168.1.101:1521/orcl')    #建立连接,3个参数分开写
    print db.version
    return db

# 美化
def prettify(str=None):
    global words
    if str!=None and len(str)>0:
        for word in words:
            str = str.replace(word,word.capitalize())
        return str[0].lower()+str[1:]

def run(table=None,db=None):
    if table!=None:
        global SQL
        table = table.upper()
        SQL = SQL.replace("@TABLE",table)
    try:
        if db==None:
            db = conn()
        tableComment(table,db=db,closeDb=False)
        cursor = db.cursor()    #建立一个cursor
        cursor.execute(SQL)    # 执行一条sql
        # row=cursor.fetchone() #取一行结果,元组(a,b,c,d)
        row=cursor.fetchall() #获取所有结果,列表[(a,b,c,d),(e,f,g,h),...]
        print '=='*100
        for x in row:
            print prettify(x[1].lower())+"\t"*4+x[2]
        # cursor.rowcount() #获取输出记录数量
        print '=='*100
    except Exception,e:
        print e
    finally:
        cursor.close()
        db.close()
        # sql = "insert into person(name, age, telephone) values(%s, %s, %s)"
        # tmp = (('ninini', 89, '888999'), ('koko', 900, '999999'))
        # conn.executemany(sql, tmp) #执行多条sql
"""
打印表注释
"""
def tableComment(tableName=None,sql="select * from user_tab_comments",db=None,closeDb=True):
    if not tableName==None:
        sql="select * from user_tab_comments where TABLE_NAME='%s'" %(tableName.upper())
    try:
        if db==None:
            db = conn()
        cursor = db.cursor()    #建立一个cursor
        cursor.execute(sql)    # 执行一条sql
        row=cursor.fetchone()
        if row:
            print prettify(row[0].lower())+"\t"*4+row[2] if row[2]!=None else ''
    except Exception , e:
        print e
    finally:
        cursor.close()
        if closeDb:
            db.close()

# 打印单张表注释及字段注释
run("saleDetail")
# 打印单张表注释
# tableComment("saleDetail")
# 打印所有表注释(无字段注释)
# tableComment()


展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部