Data Base_Oracle/SQL

SQL 단순 VIEW 생성

pathas 2020. 1. 8. 23:45

단순 VIEW 생성

§ 형식

[ SQL> create view view명 as SQL 구문 ; ]

# 에러

▷ emp 테이블에서 20번 부서에 근무하는 사원의 정보를 검색할 수 있는 View 생성

▶ [ SQL> create view v_emp20
as select empno, ename, job from b_emp3
where deptno=20;
1행에 오류:
ORA-01031: 권한이 불충분합니다 ]

 

※ view를 생성하기 위해서는 create view권한이 필요하기 때문에 발생하는 에러
→ Oracle 버전에 따라 다름
10g까지는 권한이 없어도 가능했지만 11g부터는 권한이 필요함

▶ 에러 해결 - 권한 부여

관리자가 해당 계정에 create view 권한을 부여하면 됨

[ SQL> conn sys/sys##### as sysdba
SQL> grant create view to scott;
권한이 부여되었습니다. ]

# 예제

▷ emp 테이블에서 20번 부서에 근무하는 사원의
사번, 이름, 업무를 검색할 수 있는 View 생성

▶ [ SQL> create view v_emp20
as select empno, ename, job from b_emp3
where deptno=20;
뷰가 생성되었습니다.
select * from tab; ]

TNAME TABTYPE CLUSTERID
BONUS TABLE  
... ...  
V_EMP20 VIEW  

단순 뷰의 생성 방법에 대해 알아보았습니다.
형식은 테이블 생성과 유사하지만 테이블 타입이 VIEW라는 것을 확인할 수 있습니다.

테이블 생성에도 권한이 필요하듯 뷰의 생성에도 권한이 필요합니다.