我正在将一些字符串数据插入到我的数据库中,但发现完整的单词没有显示出来。它只会显示单词的前9个字符,然后显示“+”符号。
Portabili +
新注册+
而不是“Portability”和“New Enrollment”。
最初,该列的数据类型是VARCHAR2(10字节),所以我认为这可能是问题所在。
我已经使用Alter Table语句将其更改为100个字节,并插入新数据以查看它是否显示完整的单词但仍然没有显示。
任何想法为什么?数据可以自动截断的所有方式/原因是什么?
解决方案: 我想出来了。答案是改变大小,但是,我必须清除应用程序服务器上的缓存并截断与应用程序相关的DB中的几个缓存表。现在,较大的列大小会反映在数据库中,并显示完整的单词。
答案 0 :(得分:1)
听起来数据在插入时被截断了。增长列无法恢复先前被截断的数据。
答案 1 :(得分:1)
您是否使用SQL Developer等数据库客户端插入数据?
您是否使用DB客户端检查插入的数据(选择bla bla bla)?
如果是这样,看起来数据在插入时被截断,请检查此表上的before
触发器。
答案 2 :(得分:0)
您需要根据列可能容纳的最长值来调整列的大小。对于类似“类别”的列,它看起来像你在这里处理的那样,大小为128字节应该这样做。
但是,扩展更改表定义时,将无法恢复先前插入的值。但是,未来的价值观将没有问题。