使用cx_Oracle来处理.sql脚本

时间:2017-07-07 04:12:49

标签: python cx-oracle

# -*-coding: UTF-8 -*-
import cx_Oracle
conn = cx_Oracle.connect('test/test01@10.10.2.3/test') 
cursor =conn.cursor()
f = open('test001.txt','r',encoding='gbk')
full_sql = f.read()
sql_commands = full_sql.split(';')

for sql_command in sql_commands:
    cursor.execute(sql_command)}    

系统错误:UnicodeEncodeError:'ascii'编解码器无法对位置353-357中的字符进行编码:序数不在范围内(128)

1 个答案:

答案 0 :(得分:0)

cx_Oracle 6.0rc1存在问题,其中Windows操作系统错误的混合文本编码导致导入cx_Oracle以显示各种UnicodeEncodeError消息。像this这样的帖子有问题。 cx_Oracle错误已经fixed on GitHub但是还没有发布到PyPi(很快就会发布)。如果你可以从GitHub安装cx_Oracle,你会看到实际的操作系统错误 - 然后你必须修复它。

导致操作系统生成错误的问题的实际根源可能是您的路径中没有Oracle客户端库,这些库与Python不是相同的体系结构(32位或64位) ,或者您的Oracle客户端库版本没有正确的VS Redistributable。所需的VS Redistributables列在Instant Client下载页面(32-bit64-bit)上。