【问题标题】:SQL Server error - Operand type clash: ntext is incompatible with int - (I'm not even using "ntext")SQL Server 错误 - 操作数类型冲突:ntext 与 int 不兼容 - (我什至没有使用“ntext”)
【发布时间】:2015-10-20 23:24:49
【问题描述】:

我正在操作的列之一是:

Comments VARCHAR(8000)

所以基本上我试图在此列Comments 中插入最多 600 个字符的大文本。当我运行我的脚本时,前 10 行一切都很顺利,然后突然我收到这个错误:

pypyodbc.DataError: ('22018', '[22018] [Microsoft][ODBC SQL Server 驱动程序][SQL Server]操作数类型冲突:ntext 不兼容 int')

如果我重新运行查询,接下来的 10 行一切都将开始顺利进行,您可能已经猜到了,我再次遇到同样的错误。

我能做些什么来解决这个问题?

编辑

我尝试过使用VARCHAR(MAX)NVARCHAR(MAX)VARCHAR(800)TEXT。我每次都遇到同样的错误。

【问题讨论】:

  • 您使用的似乎是 {SQL Server} ODBC 驱动程序,该驱动程序非常旧且早于 Azure。也许尝试使用{SQL Server Native Client 11.0} 驱动程序,看看是否有帮助。
  • 试过了 - 仍然出现同样的错误:(
  • 我有同样的问题:似乎 pypyodbc(pyodbc has same prob) 将您的变量转换为虚假的东西。问题是 SQL-Server ODBCs Typeinfo 和 pyodbc 之间的一些不兼容。有时我是想知道:SQL-DB 已有 40 多年的历史了.. 有人应该修复这些东西 :(

标签: sql-server tsql azure-sql-database pypyodbc


【解决方案1】:

不知道是不是第10行的数据有问题? 要对此进行测试,请尝试删除第 5 行的数据,然后查看错误是否从第 9 行开始。

【讨论】:

  • 我试过这样做 - 但无济于事。我一次只能插入 8 到 10 行,然后弹出上述错误。当我再次重新运行查询时,它适用于一组不同的 8 到 10 行,然后再次停止。脚本运行良好,但仅在有限的时间内运行 - 所以脚本是 100% 正确的,因为数据正确存储在数据库中。
【解决方案2】:

我建议您使用 pmyssql 而不是 pypyodbc。似乎这是一个驱动程序级别的问题,切换到 pymssql 可能会有所帮助。请关注 ACOM 文档,如果有帮助,请告诉我。如果您仍然遇到同样的问题,请告诉我,因为我可以进一步尝试帮助您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    相关资源
    最近更新 更多