가상컬럼 테이블 생성
[문법]
column_name [datatype] [GENERATED ALWAYS] AS [expression] [VIRTUAL]
CREATE TABLE Virtual_Test
(
item_no NUMBER,
item_name VARCHAR2(50),
item_price NUMBER,
item_min_count NUMBER,
item_min_price NUMBER GENERATED ALWAYS AS (item_price * item_min_count)
);
데이터 입력
INSERT INTO Virtual_Test(item_no,item_name,item_price,item_min_count) VALUES(1,'태블릿',100000,5)
데이터조회
SELECT * FROM Virtual_Test;
결과확인
ITEM_NO|ITEM_NAME|ITEM_PRICE|ITEM_MIN_COUNT|ITEM_MIN_PRICE|
-------|---------|----------|--------------|--------------|
1|태블릿 | 100000| 5| 500000|
딕셔너리 정보 확인
SELECT column_name, data_type, data_length, data_default, virtual_column
FROM dba_tab_cols
WHERE table_name = UPPER('Virtual_Test');
결과확인
COLUMN_NAME |DATA_TYPE|DATA_LENGTH|DATA_DEFAULT |VIRTUAL_COLUMN|
--------------|---------|-----------|-----------------------------|--------------|
ITEM_MIN_PRICE|NUMBER | 22|"ITEM_PRICE"*"ITEM_MIN_COUNT"|YES |
ITEM_MIN_COUNT|NUMBER | 22| |NO |
ITEM_PRICE |NUMBER | 22| |NO |
ITEM_NAME |VARCHAR2 | 50| |NO |
ITEM_NO |NUMBER | 22| |NO |
Oracle 11g New Feature 가상 컬럼(Virtual Column) - 표현식등에 의해 정의.
- DB에 저장되지는 않는다.(실행 중 계산) - 가상컬럼을 update 할 수 없다.
- UPDATE, DELETE의 where절에 나타날 수 있지만 변경은 불가
'DATABASE > ORACLE' 카테고리의 다른 글
오라클 LISTAGG 사용법 (0) | 2020.02.04 |
---|---|
오라클 PROFILE IDLE_TIME 변경 (0) | 2020.02.03 |
오라클 현재 접속 세션의 스키마 변경 (0) | 2020.01.30 |
오라클 디렉토리 만들기 (0) | 2020.01.28 |
오라클 테이블/컬럼 조회 및 코멘트 조회 방법 (0) | 2020.01.13 |