在oracle中的列中插入/更新多个空格

时间:2013-06-20 21:21:16

标签: sql oracle sqlplus

我有一个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。

1 个答案:

答案 0 :(得分:3)

别担心,那里有7个空格。它的SQL * Plus隐藏了显示的前导空格。你可以通过用一些额外的符号包围name列来证明它:

select '>'||name||'<' from temp;
>    <

编辑:罪魁祸首是WORD_WRAPPED - 功能。要阻止SQL * Plus占用空格,请将格式从WORD_WRAPPED切换为WRAPPEDTRUNCATED

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