我有包含2列ENM和EADD的表EMP。现在,我需要添加一个列EMPID,但我希望它像EMPID, ENM, EADD一样显示为表中的第一列。
发布于 2019-05-03 06:37:29
演示:
create table emp
( enm varchar2(20)
, eadd varchar2(100) );
alter table emp add empid number not null;对emp的描述提供了:
Name Null? Type
------------------------------- -------- ----------------------------
ENM VARCHAR2(20)
EADD VARCHAR2(100)
EMPID NOT NULL NUMBER使除empid之外的所有列不可见并再次可见:
begin
for r in (
select column_name
from user_tab_columns c
where c.table_name = 'EMP'
and c.column_name <> 'EMPID'
)
loop
execute immediate 'alter table emp modify '||r.column_name||' invisible';
execute immediate 'alter table emp modify '||r.column_name||' visible';
end loop;
end;
/现在你有了这个:
Name Null? Type
------------------------------- -------- ----------------------------
EMPID NOT NULL NUMBER
ENM VARCHAR2(20)
EADD VARCHAR2(100)发布于 2019-05-04 06:31:15
正如William Robertson所建议的,使用不可见和可见可以用来对列进行重新排序。但是,如果您的表有许多字段,这种方法可能会令人讨厌,特别是如果您在开发过程中多次重新排序。
总是有一种行之有效的方法,即删除表并按所需顺序重新创建。
https://stackoverflow.com/questions/55960368
复制相似问题