12C 中,使表的列不可见

创建表,region 列为不可见 ,使用desc的时候,列是看不到的

create table t2 (c1 varchar2(10),country char(2),nb number,region varchar2(20) invisible);
SYS@test>create table t2 (c1 varchar2(10),country char(2),nb number,region varchar2(20) invisible);

Table created.

SYS@test>desc t2;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 C1						    VARCHAR2(10)
 COUNTRY					    CHAR(2)
 NB						    NUMBER

SYS@test>

设置参数 colinvisible 使列可见

set colinvisible on
desc t2;

SYS@test>set colinvisible on
SYS@test>desc t2
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 C1						    VARCHAR2(10)
 COUNTRY					    CHAR(2)
 NB						    NUMBER
 REGION (INVISIBLE)				    VARCHAR2(20)

SYS@test>

向列中插入数据

insert into t2 values('aa','bb',1000,'cc');
insert into t2 values('aa','bb',1000);
insert into t2 (c1,country,nb,region) values ('aa','bb',100,'dd');

SYS@test>insert into t2 values('aa','bb',1000,'cc');
insert into t2 values('aa','bb',1000,'cc')
            *
ERROR at line 1:
ORA-00913: too many values


SYS@test>insert into t2 values('aa','bb',1000);

1 row created.

SYS@test>insert into t2 (c1,country,nb,region) values ('aa','bb',100,'dd');

1 row created.

SYS@test>
将列设置为可见
alter table t2 modify (region visible);

SYS@test>alter table t2 modify (region visible);

Table altered.

SYS@test>desc t2
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 C1						    VARCHAR2(10)
 COUNTRY					    CHAR(2)
 NB						    NUMBER
 REGION 					    VARCHAR2(20)

SYS@test>
end

猜你喜欢

转载自blog.csdn.net/xxzhaobb/article/details/80306276