0

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

4

1 回答 1

3

不用担心,7个空格就在那里。是 SQL*Plus 在显示时隐藏了前导空格。您可以通过在名称列周围加上一些额外的符号来证明这一点:

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

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

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
于 2013-06-20T21:27:44.040 回答