보이지 않는 컬럼(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) ;

+ Recent posts