보이지 않는 컬럼(INVISIBLE COLUMN)에 대해 알아보자.
테이블을 생성해서 알아보자.
CREATE TABLE test (
num NUMBER PRIMARY KEY,
name VARCHAR2(30) NOT NULL,
tel VARCHAR2(30) INVISIBLE
);
DESC test; -- 확인불가
SELECT * FROM col WHERE tname = 'TEST'; -- INVISIBLE 컬럼 보이지 않음.
SELECT * FROM cols WHERE table_name = 'TEST'; -- INVISIBLE 컬럼 보임.
테이블을 생성할 때 컬럼명 자료형 기술 후 INVISIBLE 을 넣으면 보이지 않는 컬럼이 생성된다.
이 컬럼의 존재는 SELECT * FROM cols WHERE table_name = 'TEST';를 통해 알 수 있다.
이렇게 숨겨진 컬럼에 데이터를 넣을 때는 컬럼명을 명시해야한다.
INSERT INTO test VALUES(1, 'a'); -- 가능
INSERT INTO test VALUES(2, 'b', '010'); -- 에러
INSERT INTO test (num, name, tel) VALUES(2, 'b', '010'); -- 가능
또, 테이블을 보기위해서도 컬럼명을 명시해야한다.
SELECT num, name, tel FROM test; -- INVISIBLE 컬럼 보임
SELECT * FROM test; -- INVISIBLE 컬럼 보이지 않음
-- VISIBLE/INVISIBLE 컬럼으로 변경
ALTER TABLE test MODIFY (tel VISIBLE);
ALTER TABLE test MODIFY (tel INVISIBLE);
-- INVISIBLE 컬럼에 NOT NULL 제약 조건 설정
ALTER TABLE test MODIFY (tel NOT NULL) ;
'쌍용강북교육센터 > 8월' 카테고리의 다른 글
0819_Oracle[PL/SQL] : PROCEDURE, FUNCTION 예제 (2) | 2021.08.20 |
---|---|
0818_Oracle : IDENTITY COLUMN (2) | 2021.08.19 |
0818_Oracle : 페이징처리 [21.08.23 수정] (2) | 2021.08.19 |
0818_Oracle : 정규식 (0) | 2021.08.19 |
0817_Oracle : SYNONYM 시노님 (2) | 2021.08.18 |