繁体   English   中英

SQL Server Pyodbc大文本插入问题

[英]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)列,以及
  • 字符串长于204800个字符。

对于较新的驱动程序,例如DRIVER=ODBC Driver 11 for SQL ServerDRIVER=ODBC Driver 11 for SQL Server DRIVER=ODBC Driver 17 for SQL Server它不会发生。

您应该更新驱动程序,然后询问新问题,如果身份验证错误仍然存​​在,并且您需要帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM