我有一个varchar2
类型的长度为10的列,我想仅用7个空格更新该列,但是当我尝试选择或更新该值时,我只获得一个空格。
如何更新列,因为7个空格是唯一可更新的值?
我尝试了以下查询:
create table temp(name varchar(10));
insert into temp values(' ');
update temp set name=' ';
commit;
select * from temp;
我的列只有1个空格;
我正在使用Oracle SQL * Plus。
答案 0 :(得分:3)
别担心,那里有7个空格。它的SQL * Plus隐藏了显示的前导空格。你可以通过用一些额外的符号包围name列来证明它:
select '>'||name||'<' from temp;
> <
编辑:罪魁祸首是WORD_WRAPPED
- 功能。要阻止SQL * Plus占用空格,请将格式从WORD_WRAPPED
切换为WRAPPED
或TRUNCATED
:
update temp set name = ' x ';
SQL> column name format a10 word
SQL> select name from temp;
NAME
----------
x
SQL> column name format a10 trunc
SQL> select name from temp;
NAME
----------
x