我正在尝试查询 Microsoft SQL 2005 数据库,处理数据并将密钥写入我更新到本地机器上的 sqllite3 数据库存储的数据中。
我使用的工具是 python 2.7、pyodbc 和 sqllite3。我在 Windows 7 上,我尝试使用带有 pyodbc 的 sql server 和 sql 本机客户端驱动程序连接到我的 mssql db 的驱动程序,两者都产生相同的结果。
我遇到问题的字段是 mssql 中的二进制(16)的 uuid 字段。当我使用 pyodbc 查询数据时,它会以 bytearray() 形式返回给我。
这是我运行以下命令时得到的输出。
id = mycursor.fetchone()
print id
àO÷�eÅO‹1ÝWt'E
repr(id)
字节数组(b'\xe0O\xf7\x1d\x9de\xc5O\x8b1\x0e\xddWt\x91E')
当我将该 ID 插入 sqllite3 数据库时,我得到以下信息。
s = sqlite3.connect('tmp.db')
cursor = s.cursor()
s.execute("create table recs(uuid blob)")
s.commit()
s.execute("insert into recs (uuid) values(?)", id)
1 s.execute("插入 recs (uuid) 值(?)", id)
ProgrammingError:提供的绑定数量不正确。当前语句使用 1,提供了 16 个。