我在Java中遇到了这个问题,使用Log4j登录到Server数据库。当您试图将数据插入超出其大小或限制的列时,通常会抛出它,但不幸的是,这不是我的情况。它记录了几秒钟完美然后..。轰隆隆!(未能执行SQL -数据截断)。
我发送包含IP地址的字符串:
log.debug("Connecting to server... 100.0.0.1");我发现了这个:
表达式可能无意中导致数据被截断。在下列情况下可以发生截断: 弦乐。例如,使用DT_WSTR数据类型将字符串数据转换为相同长度的字符串(以字符为单位)和使用DT_STR数据类型将导致数据丢失,如果原始字符串包含双字节字符。 重要数字。例如,将整数从DT_I4数据类型转换为DT_I2数据类型,或将无符号整数转换为有符号整数。微不足道的数字。例如,将实数从DT_R8转换为DT_R4,或将整数从DT_I4数据类型转换为DT_R4数据类型。
http://msdn.microsoft.com/en-us/library/ms137867.aspx
也许已经有人知道怎么解决了所以我问了。
感谢您的阅读。
发布于 2013-07-24 12:15:06
我解决了这个问题。我错了:
当您试图将数据插入超出其大小或限制的列时,通常会抛出它,但不幸的是,这不是我的情况。
因为这是我的案子。我有一个SmallInt类型截断的列,因为我插入了非常大的数字,所以我切换到INT,并解决了问题。另外,如果它发生在Strings中,您可以尝试将VARCHAR更改为NVARCHAR,因为varchar只使用ASCII,而nvarchar也可以使用UNICODE。
https://stackoverflow.com/questions/17816819
复制相似问题