SQL 단순 VIEW 검색 & VIEW가 실행되지 않는 경우
단순 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 역시 검색이 제한되기 때문에 데이터는 언제나 신중하게 다뤄야 합니다.