[英]SQL Server pyodbc large text insertion issue
我有一个大的字符串文本要插入到SQL Server 2014 Express(v12.0.2000)的列中。 最初,我将字段定义为text
类型,并且将数据插入表中没有任何问题。 后来我发现不推荐使用text
数据类型,不应该使用它。 将数据类型转换为varchar(max)
在pyodbc中引发了一个怪异的问题。 将相同的数据插入varchar(max)
列时,它将引发错误并显示以下消息:
[HY000] [Microsoft] [ODBC SQL Server驱动程序]警告:部分插入/更新。 文本或图像列的插入/更新未成功。 (0)(SQLPutData)
但是相同的插入对于text
列也可以正常工作。
我在Windows身份验证中使用的是{SQL Server}
驱动程序,当我将其更改为{SQL Server Native Client 11.0}
它开始无法通过身份验证,因此在使用text
数据类型时,我将其切换回{SQL Server}
。
我调查了有关类似问题的一些讨论,但找不到有助于调试该问题的案例。
我检查了成功插入数据并失败的字符串的大小:
TEXT
:成功插入所有数据。 VARCHAR(MAX)
:插入长度为98566但长度为326235的字符串失败。 任何指导,甚至调试技巧都将受到高度赞赏。 提前致谢。
“警告:部分插入/更新。” 错误与
DRIVER=SQL Server
ODBC驱动程序(SQLSRV32.DLL), [n]varchar(max)
列,以及 对于较新的驱动程序,例如DRIVER=ODBC Driver 11 for SQL Server
或DRIVER=ODBC Driver 11 for SQL Server
DRIVER=ODBC Driver 17 for SQL Server
它不会发生。
您应该更新驱动程序,然后询问新问题,如果身份验证错误仍然存在,并且您需要帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.