【发布时间】:2012-01-30 15:46:34
【问题描述】:
我正在尝试将大于 5500 个字符的字符串值插入 MSSQL 2008 数据库。我收到错误
字符串或二进制数据将被截断。
当我尝试插入这些值时,即使列的数据类型声明为 nvarchar(max)。我可以输入的字符串大小是否有上限?如果是这样,有什么办法可以解决这个问题?
编辑
当我通过 mgmt studio 手动输入数据时,它可以工作。但是,我正在通过 JDBC 驱动程序和准备好的语句执行更新。
我的查询格式为:
UPDATE table SET columnX = value1 WHERE columnX = value2;
- 我将此语句添加到批处理中,每 1000 条语句执行一次。
- 在这种情况下,value1 包含大量字符。
- columnX 明确定义为 nvarchar(max)
【问题讨论】:
-
你的代码和表 DDL 是什么样的?你试过最简单的测试用例吗?
-
您确定这不是不同的列吗?此错误is infamous 提供的信息很少。
-
发布您的查询、示例数据和表结构,我们可以提供帮助。基本上现在你说“我不能这样做”,我们没有信息可以继续,所以当前问题的答案是“不要那样做”,这同样没有帮助。
-
另外,您使用的是哪个 JDBC 驱动程序和 JRE? MS-JDBC 实现在最近的 JRE 中存在一些已知的和可能仍然未知的问题
-
不知道和你的问题有没有关系,但是MS官方不支持这种组合。见这里:blogs.msdn.com/b/jdbcteam/archive/2012/01/20/…
标签: java sql string sql-server-2008 nvarchar