SQL异常:尝试将VARCHAR'...'缩小为长度x时遇到截断错误

时间:2010-05-18 15:59:09

标签: sql derby

我对sql知之甚少,有人能给我一个更深层次的解释(或引用)这个异常意味着什么吗?

- 更新

要在VARCHAR中添加的数据是:

  

30819f300d06092a864886f70d010101050003818d00308189028181008942f81b3ae99e5f66dbc92cb971366f513c056e0bd6557c021058f6892d3a648230959c95378969f6dcb63046431fc0d39799789d307f96c811ae3836e43075e8cf21af84ce84f1e9c68773c9fbf03149f40248797a92562d55698dc7dce9f840bad0dfb47ccb982a2f015461cd5d38a3d6d75b349ce0bd89e3535ee8091ce70203010001

有325个字符。

我的VARCHAR大小为330并且抛出了这个异常:

  

SQL异常:截断错误是   遇到尝试收缩VARCHAR   '30820276020100300d06092a864886f70d0101010500048202603082025c&安培;'   到330的长度。

(请注意,错误消息中指定的VARCHAR与我尝试插入的VARCHAR不同,我不知道为什么)

考虑到这个大小,我的数据不能大于VARCHAR,正如你所看到的那样。

可能有什么问题?

- 结果

在准备SSCCE时,我意识到我在错误的地方插入了错误的数据.. XD

2 个答案:

答案 0 :(得分:6)

这意味着您的VARCHAR字段(可变长度字符串字段)的长度为X,例如100,而您尝试插入的数据长度超过100个字符。

SQL Server不会在varchar字段的最大长度上自动截断您的数据 - 您必须确保自己不要插入超出字段可容纳的数据。

答案 1 :(得分:0)

尝试使用减少查询的长度 CONVERT (data_type[(length)], expression [, style])