您的位置:首页 > 数据库 > Oracle

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

2017-08-06 19:48 751 查看
# -*- 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)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 数据库
相关文章推荐