오라클 view 예제

는 뷰 V1, 테이블 T1 및 외부 스칼라 함수 SIN에 따라 달라집니다. 이 보기 정의를 고려하면 기존 레코드의 EMPNO 또는 ENAME 필드를 업데이트할 수 있지만 뷰에서 DEPTNO 필드를 변경할 수 없으므로 ACCOUNTS_STAFF 보기를 통해 EMP 테이블에 행을 삽입할 수 없습니다. DEPTNO 필드에 기본값 10을 정의한 경우 삽입을 수행할 수 있습니다. 이 예제에서는 수정 가능한 사용자 스키마의 모든 테이블및 뷰에 있는 모든 열을 표시합니다.이 예제에서는 정의 쿼리가 first_name에 대한 full_name과 같은 식에 대한 열 별칭을 사용하기 때문에 뷰에 대한 열 이름을 정의하지 않았습니다.| ` ` || last_name 및 yos for FLOOR (달_사이(현재_DATE, hire_date)/ 12). 이 예제에서는 뷰가 기반이 되는 테이블(직원 및 지역)은 사용자 gdb가 소유합니다. 뷰를 만드는 사용자는 사용자 로켓입니다. 또한 로켓은 다른 사용자에게 보기에 대한 권한을 부여합니다. 따라서 gdb는 로켓에게 직원 및 지역 테이블에서 선택할 수 있는 권한을 부여하고 WITH GRANT OPTION을 포함해야 하므로 로켓은 뷰에서 다른 사용자에게 SELECT 권한을 부여할 수 있습니다. WITH CHECK OPTION 절을 사용하여 뷰를 정의하고 키 보존 테이블이 반복되는 경우 이러한 뷰에서 행을 삭제할 수 없습니다. 예를 들어 일반적으로 조인 뷰의 모든 수정 가능한 열은 키 보존 테이블의 열에 매핑해야 합니다. WITH CHECK OPTION 절을 사용하여 뷰를 정의하면 모든 조인 열과 반복된 테이블의 모든 열은 수정할 수 없습니다. 해당 사용자에게 기본 테이블(직원 및 지역)에 대한 액세스 권한을 부여하지 않고도 특정 사용자에게 뷰에 대한 권한을 부여할 수 있습니다. 이 예제에서 dispatch_mgr 사용자에게는 두 뷰 모두에 대한 선택 권한이 부여됩니다.

예를 들어 이전 예제에서 설명한 대로 ACCOUNTS_STAFF 보기를 만든다고 가정합니다. 역할 및 다른 사용자에게도 여러 개체 권한을 부여합니다. 그러나 이제 는 30이어야 하기 때문에 정의 쿼리의 WHERE 절에 지정된 부서 번호를 수정하려면 ACCOUNTS_STAFF 보기를 다시 정의해야 합니다. 만든 개체 권한의 부여를 유지 하려면 계정_STAFF 보기의 현재 버전을 다음 명령문으로 대체할 수 있습니다. 이제 이 EMP_DET 뷰를 다른 테이블과 동일하게 처리할 수 있습니다. ACCOUNTS_STAFF 뷰를 정의하는 쿼리는 부서 10의 행만 참조합니다. 또한 WITH CHECK OPTION은 뷰에 대해 발행된 INSERT 및 UPDATE 문이 뷰를 만들거나 뷰가 선택할 수 없는 행을 생성하거나 생성할 수 없는 제약 조건으로 뷰를 만듭니다. 오라클에서는 몇 가지 제한 사항으로 조인과 관련된 뷰를 수정할 수 있습니다. 다음 간단한 보기: 오라클 보기에 대 한 자세한 내용은 아래 자습서를 따르십시오: 오라클에서 뷰 만들기 또는 바꾸기 문을 삭제 하지 않고 Oracle VIEW의 정의를 수정 하는 데 사용 됩니다.

customer_credits라는 이름 위에 쿼리를 할당하고 이 보기에서 쿼리 데이터를 지정한다고 가정해 보겠습니다. 이 예제에서는 두 개의 테이블 공급자를 만들고 먼저 주문합니다. 뷰에서 DML 작업을 수행하지 않으려면 읽기 전용 옵션을 사용하여 DML 작업을 만듭니다. 그런 다음 뷰에서 DML 작업이 허용되지 않습니다. 뷰에 대한 DML 작업에 대한 제한은 나열된 순서대로 다음 조건을 사용합니다. SQL 쿼리의 테이블처럼 사용할 수 있으므로 뷰는 가상 테이블입니다.