【发布时间】:2012-12-04 14:30:54
【问题描述】:
我的表中有一个名为 TNAME 的列,类型为 nvarchar2(8)。如您所见,长度为 8。表中有几条记录,所有记录在该列中都有 8 个符号。当我选择该列时,该值包含 仅 7 个符号。如果我select length(TNAME) from mytable,结果是8!!!
看图。
为什么会这样,有什么想法吗?
另一张照片
【问题讨论】:
-
我会说您的 GUI 的列太窄了。如果您的查询确实返回值不是
'CMN00632'的行,那么是的,有一些可怕的错误,因为您的数据库不知道=的含义。 -
我支持 Wooble 的假设。我也怀疑 GUI 会在最后切断那 2 个。
-
没有。宽度不是问题! @Wooble
-
看起来像吗? - 惠康。那就是问题所在。长度为8,值为7。其中有CMN00632,结果中有CMN0063
-
如果
WHERE子句确实产生了您声称的结果,您可能需要切换到一个有效的数据库。虽然我怀疑如果= foo现在在 Oracle 中意味着LIKE foo%,人们现在应该已经注意到了。
标签: sql oracle plsqldeveloper