列数据末尾的“+”?

时间:2014-02-06 01:07:58

标签: sql oracle

我正在将一些字符串数据插入到我的数据库中,但发现完整的单词没有显示出来。它只会显示单词的前9个字符,然后显示“+”符号。

  

Portabili +

     

新注册+

而不是“Portability”和“New Enrollment”。

最初,该列的数据类型是VARCHAR2(10字节),所以我认为这可能是问题所在。

我已经使用Alter Table语句将其更改为100个字节,并插入新数据以查看它是否显示完整的单词但仍然没有显示。

任何想法为什么?数据可以自动截断的所有方式/原因是什么?

  

解决方案: 我想出来了。答案是改变大小,但是,我必须清除应用程序服务器上的缓存并截断与应用程序相关的DB中的几个缓存表。现在,较大的列大小会反映在数据库中,并显示完整的单词。

3 个答案:

答案 0 :(得分:1)

听起来数据在插入时被截断了。增长列无法恢复先前被截断的数据。

答案 1 :(得分:1)

您是否使用SQL Developer等数据库客户端插入数据? 您是否使用DB客户端检查插入的数据(选择bla bla bla)? 如果是这样,看起来数据在插入时被截断,请检查此表上的before触发器。

答案 2 :(得分:0)

您需要根据列可能容纳的最长值来调整列的大小。对于类似“类别”的列,它看起来像你在这里处理的那样,大小为128字节应该这样做。

但是,扩展更改表定义时,将无法恢复先前插入的值。但是,未来的价值观将没有问题。