小编典典

使用python pymssql将二进制文件插入MSSQL db(varbinary)

sql

我正在尝试使用pymssql从金字塔Web应用程序中使用 存储过程 将二进制数据插入MSSQL数据库。

相应列的MSSQL数据类型为varbinary(max)

我的问题是: 在插入二进制文件之前,MSSQL数据库的varbinary数据类型希望我如何处理它?

这是我一直在尝试的方法:

with open(tmp_file, 'rb') as content_file:
    filecontent = content_file.read()

…,然后将的值传递filecontent给存储过程。

tmp_file在这种情况下,是.png文件的有效路径。

MSSQL db回答以下错误:

*** DatabaseError: (257, 'Implicit conversion from data type varchar to varbinary(max) is not 
allowed. Use the CONVERT function to run this query.DB-Lib error message 257, severity 16:\nGeneral
SQL Server error: Check messages from the SQL Server\n')

我能够将filecontent变量的值插入到SQLite(varbinary列)和MySQL数据库(BLOB列)中,没问题。

为什么它不能与MSSQL数据库一起使用?


阅读 501

收藏
2021-03-23

共1个答案

小编典典

也许您必须显式转换 varchar 。这就是您的错误消息所隐含的含义。

请参阅:http : //social.msdn.microsoft.com/Forums/sqlserver/zh-
CN/8f9d772a-4fa2-45b4-9fed-f03c73bd757a/implicit-conversion-from-data-type-
varchar-to-varbinary-is-不允许使用转换功能?forum =
transactsql

这似乎解决了同样的问题。

2021-03-23