SET COLINVISIBLEตัวอย่าง
ใช้ในการโชว์ข้อมูล column ที่ invisible
SQL> show colinvisibleจะพบว่าเราสามารถ INSERT/UPDATE หรือ SELECT ข้อมูลจาก column ที่ invisible ได้ด้วยการระบุชื่อ column
colinvisible OFF
SQL>
SQL> create table mytable(col1 number, col2 varchar2(20) invisible);
Table created.
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
SQL> insert into mytable (col1,col2) values (1,'Surachart Opun');
1 row created.
SQL> select * from mytable;
COL1
----------
1
SQL>
SQL> show colinvisible
colinvisible OFF
SQL>
SQL> set colinvisible on
SQL> show colinvisible
colinvisible ON
SQL>
SQL>
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
COL2 (INVISIBLE) VARCHAR2(20)
SQL>
SQL> select * from mytable;
COL1
----------
1
SQL> select COL1, COL2 from mytable;
COL1 COL2
---------- --------------------
1 Surachart Opun
SQL>
SQL> set colinvisible off
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
SQL>
SQL>
SQL> select COL1, COL2 from mytable;
COL1 COL2
---------- --------------------
1 Surachart Opun
อย่างไรก็ดี COLUMN ที่เราต้องการเซตเป็น INVISIBLE ไม่ควรมี default (NOT NULL)
SQL> create table mytable(col1 number, col2 varchar2(20) not null);จะเห็นว่าเกิด Error ดังตัวอย่าง... เราจึงควรเช็คให้ดี หรือแจ้งให้ Developer ทราบ ^______________^
Table created.
SQL> alter table mytable modify (col2 invisible);
Table altered.
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
SQL> insert into mytable values (1);
insert into mytable values (1)
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("DEMO"."mytable"."COL2")
SQL>
SQL>
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
SQL>
SQL> show colinvisible
colinvisible OFF
SQL> set colinvisible on
SQL>
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
COL2 (INVISIBLE) NOT NULL VARCHAR2(20)
SQL>
SQL> insert into mytable values (1,'Surachart Opun');
insert into mytable values (1,'Surachart Opun')
*
ERROR at line 1:
ORA-00913: too many values
SQL> desc mytable
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
COL2 (INVISIBLE) NOT NULL VARCHAR2(20)
SQL> insert into mytable (col1,col2) values (1,'Surachart Opun');
1 row created.
ไม่มีความคิดเห็น:
แสดงความคิดเห็น