【问题标题】:SQL Exception: A truncation error was encountered trying to shrink VARCHAR '...' to length xSQL 异常:尝试将 VARCHAR '...' 缩小到长度 x 时遇到截断错误
【发布时间】:2011-02-20 23:36:11
【问题描述】:

我对sql知之甚少,谁能给我更深入的解释(或参考)这个异常是什么意思?

--更新

要添加到 VARCHAR 中的数据是:

30819f300d06092a864886f70d010101050003818d00308189028181008942f81b3ae99e5f66dbc92cb971366f513c056e0bd6557c021058f6892d3a648230959c95378969f6dcb63046431fc0d39799789d307f96c811ae3836e43075e8cf21af84ce84f1e9c68773c9fbf03149f40248797a92562d55698dc7dce9f840bad0dfb47ccb982a2f015461cd5d38a3d6d75b349ce0bd89e3535ee8091ce70203010001 P>

有 325 个字符。

我的 VARCHAR 大小为 330 并抛出此异常:

SQL 异常:出现截断错误 遇到试图缩小 VARCHAR '30820276020100300d06092a864886f70d0101010500048202603082025c&' 长度为 330。

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

如您所见,鉴于此大小,我的数据不能超过 VARCHAR。

可能出了什么问题?

--找到

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

【问题讨论】:

    标签: sql derby


    【解决方案1】:

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

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

    【讨论】:

    • 这很奇怪,因为大小是330,数据长度比它少。顺便说一句,它不是 SQL Server。
    • @Tom Brito:那你用的是什么数据库??
    • 德比。顺便说一句,在准备SSCCE的时候,我意识到我在错误的地方插入了错误的数据。XD这确实是一个非常大的数据。
    【解决方案2】:

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

    【讨论】:

    • 我正在尝试在 varchar 中插入文本,但我不明白为什么需要进行转换。请查看我对问题的更新。
    猜你喜欢
    • 2014-11-11
    • 2013-08-29
    • 1970-01-01
    • 2012-07-21
    • 2011-10-16
    • 2021-01-31
    相关资源
    最近更新 更多