【问题标题】:How to see in which column data truncation has happened如何查看哪一列发生了数据截断
【发布时间】:2013-01-09 02:16:23
【问题描述】:

使用 Java 将数据插入 Microsoft SQL Server 数据库时,我遇到了 SQL 截断异常。但是异常没有显示哪一列有问题值。

是否有任何方法可以找到错误详细信息,例如从 SQL Server Management Studio 中?

注意:我在 Windows 中使用 SQL Server 数据库。

【问题讨论】:

  • 谢谢克劳德。仅限其 SQL 服务器。

标签: java sql-server ssms management-studio-express


【解决方案1】:

很遗憾,没有。错误消息是 SQL Server 为您提供的尽可能多的信息。

要发现哪些行的哪些列中的哪些值有问题,您需要分析数据。发现此类问题的一种常见方法是执行二进制切分 - 删除一半数据或一半列,再次尝试插入(可能插入与真实表具有相同结构的临时表)并查看错误是否重复。

如果是这样,那太好了,至少有一个问题存在于剩余的数据中。如果不是,那么您已经消除了一半的数据,因为没有造成问题。

【讨论】:

  • Java 正在打印“java.sql.DataTruncation:数据截断和堆栈跟踪”。但是,它没有提供有关哪些数据或列被截断的更多详细信息。
  • @Rajasekhar - 正如我所说,发生这种情况时 SQL Server 不再提供帮助 - 您需要搜索导致错误的数据。正如我也说过的,尝试定位它的一种常见方法是将涉及的数据量减半(通过删除列或删除行)并查看是否仍然出现错误
  • 感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
相关资源
最近更新 更多