【问题标题】:use cx_Oracle to handle .sql script使用 cx_Oracle 处理 .sql 脚本
【发布时间】:2017-12-11 06:14:32
【问题描述】:
# -*-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)

【问题讨论】:

  • 似乎您实际上无法读取该文件,但除非您提供完整堆栈跟踪等更多信息,否则很难说这里出了什么问题。你能从 test001.txt 中添加几行吗?
  • 从测试中删除 TERM_ID = '2017-04' 和 TERM_VERSION_ID = '2017-04-01 插入测试(ID、ID2、ID3、ID4、ID5、ID6、ID7、ID8)值( 'test', null, '2017-04-01-2017-04-30', '2017-04-01-2017-04-30_V_4', '1', '2', '3', 4) 插入测试(ID,ID2,ID3,ID4,ID5,ID6,ID7,ID8)值('test',null,'2017-04-01-2017-04-30','2017-04-01-2017-04 -30_V_4', '7', '8', '9', 10)
  • 您安装了哪个版本的 cx_Oracle?

标签: python cx-oracle


【解决方案1】:

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。 Instant Client 下载页面上列出了所需的 VS Redistributables(32-bit64-bit)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    相关资源
    最近更新 更多