使用cx_Oracle 查询Oracle数据库将数据写入csv

cx_Oracle 查询并将数据写入csv
import sys
import csv
import cx_Oracle


def connect_db()
    try:
        db = cx_Oracle.connect('username/password@ip:port/sid')
        cr = db.cursor()
		
		
		printHeader = True                              # include column headers in each table output
		sql = "select * from tab"                       # get a list of all tables
		curs.execute(sql)
		for row_data in curs:
			if not row_data[0].startswith('BIN$'):      # skip recycle bin tables
				tableName = row_data[0]
				
				# output each table content to a separate CSV file
				csv_file_dest = tableName + ".csv"
				outputFile = open(csv_file_dest,'w')
				output = csv.writer(outputFile, dialect='excel')
				sql = "select * from " + tableName
				curs2 = orcl.cursor()
				curs2.execute(sql)
				if printHeader:                          # add column headers if requested
					cols = []
					for col in curs2.description:
						cols.append(col[0])
					output.writerow(cols)
				for row_data in curs2:                    # add table rows
					output.writerow(row_data)
				outputFile.close()
    except:
        print('database connection faile')

if __name__ == '__main__':
	connect_db()
cx_Oracle 中文乱码问题解决

在使用cx_oracle模块读取Oracle数据库中的中文记录时,返回值皆为?号。
oracle数据库版本是10g,字符集是AL32UTF8.
编写的python脚本中需要加入如下两句:
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SongpingWang

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值