3

我正在尝试使用 NuoDB 数据库进行简单的连接-

import pynuodb
connection = pynuodb.connect("DB", "servername", "adminaccount", "password", options={'schema': 'schemaname'})
cursor = connection.cursor()
thedata = open('file.pdf', 'rb').read()
sql = "update table set column = (?) where id = 1"
cursor.execute(sql, (thedata,))

在尝试加载它时会产生以下错误 -

INVALID_UTF8:  invalid UTF-8 code sequence

更新 - 我尝试使用 BLOB 或 BINARY 并且都生成相同的错误。有关数据类型的文档可在此处找到 -

http://doc.nuodb.com/display/doc/Binary+Data+Types

4

1 回答 1

1

pynuodb库为您提供了一种特殊类型来封装二进制数据pynuodb.Binary();在该对象中包装二进制数据以确保正确处理:

thedata = pynuodb.Binary(open('file.pdf', 'rb').read())
sql = "update table set column = (?) where id = 1"
cursor.execute(sql, (thedata,))

如果没有这个包装器,驱动程序会尝试将数据作为文本发送到服务器,该文本必须是 UTF-8 编码的。

于 2014-07-07T19:13:59.960 回答