python 链接 ORACLE 数据库,并打印数据.解决中文乱码问题

    xiaoxiao2021-12-01  25

    # -*- coding: utf-8 -*- import sys import os import cx_Oracle reload(sys) sys.setdefaultencoding('utf-8') os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' class OracleHelp: def __init__(self, host, user, pwd, sid, port=1521): self.host = host self.port = port self.user = user self.pwd = pwd self.sid = sid self.conn = self.__get_conn__() def __get_conn__(self): return cx_Oracle.connect(self.user, self.pwd, '{0}:{1}/{2}'. format(self.host, self.port, self.sid)) def GetList(self, sql): cur = self.conn.cursor() cur.execute(sql) resList = cur.fetchall() self.conn.close() return resList def ExecNonQuery(self, sql): cur = self.conn.cursor() cur.execute(sql) self.conn.commit() self.conn.close() def GetList_test(self, sql): cur = self.conn.cursor() result = cur.execute(sql) #获取数据表的列名,并输出 title = [i[0] for i in cur.description] title.insert( 0, 'ROWNUM') #print title #格式化字符串 g = lambda k:"%-8s" % k title =map(g,title) for column_name in title: print column_name+'\t', print #输出查询结果,只查询100条 i=1 for row in result.fetchmany(100): #: result.fetchall() print str(i)+'\t', for k in map(g,row): print k+'\t', print i+=1 self.conn.close() sqlCa = OracleHelp('192.168.*.*','系统管理员','password','server') strsql = '''SELECT * FROM CLIMB.财务管理_实付款 ''' res = sqlCa.GetList_test(strsql) 结果如下
    转载请注明原文地址: https://ju.6miu.com/read-679288.html

    最新回复(0)