当数据插入某个表时,我收到错误的错误消息。
该字段的数据类型为Varchar(20)
,插入的数据为最大值
数据长度为6。
我不明白问题在哪里。虽然我可以通过添加
来避免这种情况SET ANSI_WARNINGS OFF
但它解决方法不是解决方案:
答案 0 :(得分:1)
您的列SchemaName maxlength 属性较小似乎是您要插入的值。
根据您的数据更新列长度。
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
String s = "{\"Welcome\":1,\"Hi\":2,\"Hello\":1,\"Jin\":1}";
ObjectMapper mapper = new ObjectMapper();
Map<String, String> map = mapper.readValue(s, new TypeReference<HashMap<String, String>>() {
});
map.forEach((k, v) -> System.out.println("Key is " + k + " value is " + v));
答案 1 :(得分:1)
我刚刚找到了这个问题的根本原因。
实际上我试图将sysname
数据类型值插入varchar()
。
因此,必须指定适当的长度来保存sysname数据类型。
答案 2 :(得分:0)
您的目标表不足以容纳您尝试插入的数据。看来你的目标大小是varchar(256),但是你给了varchar(10)。只需扩展列大小即可解决此问题。
运行此DDL
Alter table temp alter column SchemaName varchar(256)
答案 3 :(得分:0)
当您的列的大小较小时会出现此错误。 更新列的大小。