Data Base_Oracle/SQL

SQL 단순 VIEW 검색 & VIEW가 실행되지 않는 경우

pathas 2020. 1. 8. 23:53

단순 VIEW 실행_검색

§ 형식

[ SQL> select ,,,, from 뷰이름 where 조건식 ,,,, ; ]

# 예제

▷ emp 테이블에서 20번 부서에 근무하는 사원의
사번, 이름, 업무를 검색할 수 있는 v_emp20 뷰 조회

▶ [ SQL> select * from v_emp20; ]

EMPNO ENAME JOB
7369 SMITH CLERK
7566 JONES MANAGER
... ... ...

※ VIEW가 실행되지 않는 경우

VIEW를 만들 때 참조한 기본테이블의 구조에 문제가 발생했을 때

▷ b_emp3 테이블에서 이름이 A로 시작하는 사원의 사원번호, 이름을 갖는 VIEW생성
[ SQL> create view emp_name as select empno,ename
from b_emp3 where ename like 'A%';
뷰가 생성되었습니다.
select * from emp_name; ]

EMPNO ENAME
7499 ALLEN
7876 ADAMS

→ Oracle에서 특정 테이블의 필드를 사용하지 못하게 설정

§ 형식

[ SQL> alter table table명 set unused column 필드명; ]

# 예제

▷ b_emp3 테이블의 ename 필드를 사용하지 못하게 변경

▶ [ SQL> alter table b_emp3 set unused column ename;
테이블이 변경되었습니다.
desc b_emp3 ]

이름 널? 유형
     
... ... ...

※ ENAME 필드가 사라짐, DDL명령어는 rollback 불가, 원본 테이블에 사용 X

 

  [ SQL> select * from emp_name;
1행에 오류:
ORA-04063: view "SCOTT.EMP_NAME"에 오류가 있습니다 ]

※ 기본테이블의 필드에 문제가 발생되거나 테이블이 삭제됐을 때 발생하는 에러


VIEW 자체가 가상 테이블이기 때문에 검색 방법은 테이블 검색 방법과 동일하다고 할 수 있습니다.
기본 테이블이 손상되면 VIEW 역시 검색이 제한되기 때문에 데이터는 언제나 신중하게 다뤄야 합니다.