我正在使用oracle 11g DB,并且在其中一个包含varchar列的表中,数据具有尾随空格。我已经尝试过TRIM函数来更新列,但仍然以字符串末尾的空格为准。尾随空间的原因是什么?以及如何解决这个问题。
列内容显示如下。
select '<'||mycol||'>' from mytab
Output : <mysamplestring >
select DUMP(mycol) from mytab
Output : Typ=1 Len=28: 67,114,117,100,101,32,80,101,116,114,111,108,101,117,109,32,69,120,116,114,97,99,116,105,111,110,194,160
由于
答案 0 :(得分:0)
trim()应该按预期工作!当然它是varchar2
列而不是char
列?
update hr.countries t
set t.country_name = t.country_name || ' ';
update hr.countries t
set t.country_name = trim(t.country_name);
答案 1 :(得分:0)
将列类型从char更改为varchar2,char列使用空格填充值以填充字段的大小。因此对于char(10)列,当您插入'abc'时,它将自动插入为'abc'
答案 2 :(得分:0)
使用UNISTR为我做了诀窍。它删除了字符160和194
update mytab set mycol = REPLACE(mycol,unistr('\00A0'),'')