가상컬럼이란? 


oracle 11g부터 소개되었는데

- 하나의 테이블에 존재하는 다른 컬럼들을 이용하여 새로운 값을 만들어 내는 것을 말합니다.


만드는 방법은 



GENERATED ALWAYS AS(조건) VIRTUAL; - 테이터 컬럼명을 만든 곳 뒤에 붙인다.




1
2
3
4
create table a6(
num1 number,
num2 number,
num3 number generated always as(num1+num2) virtual);
cs



걷보기엔 일반 테이블과 다를게 없습니다. 

그러면 데이터를 넣어보겟습니다.


1
2
3
insert into a6 values(1,3,5);
insert into a6 values(1,3);
insert into a6(num1,num2) values(1,3);
cs



젤 첫번째 오류는 가상컬럼의 제약조건에 위배되었는데 가상컬럼안에는 값을 직접 입력할 수 없습니다.


두번째 오류는 그래도 컬럼이라고 컬럼수가 부족하다는 것 입니다.




가상 컬럼의 조건으로 num1과 num2의 합을 주었기 때문에 4가 들어간 것을 볼 수있습니다.

1
update a6 set num1=10;
cs


또한 기존 값을 변경하면 가상컬럼의 값도 변경이 되는 것을 볼 수 있습니다.



+ Recent posts