Java Log4J-SQL数据截断

Java Log4J-SQL数据截断,java,sql-server,logging,log4j,Java,Sql Server,Logging,Log4j,我在Java中遇到了这个问题,使用Log4j来登录SQL Server数据库。当您试图将数据插入到超过其大小或限制的列中时,通常会抛出它,但不幸的是,这不是我的情况。它完美地记录了几秒钟然后。。。繁荣(无法执行SQL-数据截断) 我发送包含IP地址的字符串: log.debug("Connecting to server... 100.0.0.1"); 我发现: 表达式可能会无意中导致数据被截断。截断 可能在以下情况下发生: 字符串。例如,使用DT_WSTR数据类型转换字符串数据 使用DT_S

我在Java中遇到了这个问题,使用Log4j来登录SQL 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数据类型的整数

也许有人已经知道如何解决这个问题,所以我问


谢谢阅读。

我解决了这个问题。我错了:

当您尝试向列中插入数据时,通常会抛出该命令 超出其大小或限制,但不幸的是,这不是我的情况


因为是的,这是我的案子。我有一个带有SmallInt类型截断的列,因为我插入了非常大的数字,所以我只切换到INT,问题就解决了。另外,如果它发生在字符串中,您可以尝试将VARCHAR更改为NVARCHAR,因为VARCHAR只接受ASCII,NVARCHAR也可以接受UNICODE。

我解决了这个问题。我错了:

当您尝试向列中插入数据时,通常会抛出该命令 超出其大小或限制,但不幸的是,这不是我的情况

因为是的,这是我的案子。我有一个带有SmallInt类型截断的列,因为我插入了非常大的数字,所以我只切换到INT,问题就解决了。此外,如果它发生在字符串中,您可以尝试将VARCHAR更改为NVARCHAR,因为VARCHAR只接受ASCII,NVARCHAR也可以接受UNICODE