오라클 트리거 예제

Posted by adminfeira - 2 agosto, 2019 - Sin categoría - No Comments

트리거는 데이터베이스에 저장되고 암시적으로 실행되거나 문제가 발생할 때 실행되는 프로시저입니다. Oracle 트리거는 다음과 같은 많은 경우에 유용합니다. 이제 Oracle 트리거가 무엇이며 CREATE TRIGGER 문을 사용하여 새 트리거를 만드는 방법을 알아야 합니다. 컴파일된 트리거에는 종속성이 있습니다. 트리거 본문에서 호출된 저장 프로시저 또는 함수와 같은 종속 개체가 수정되면 유효하지 않습니다. 종속성 이유로 무효화된 트리거는 다음 호출될 때 다시 컴파일됩니다. 이 장에서는 PL/SQL의 트리거에 대해 설명합니다. 트리거는 일부 이벤트가 발생할 때 자동으로 실행되거나 발생되는 저장된 프로그램입니다. 트리거는, 사실, 다음과 같은 이벤트 중 어느 응답으로 실행될 서면 – 트리거는 투명하게 특정 이벤트 다음 데이터베이스에서 관련 변경을 수행 할 때 매우 유용합니다. Oracle 11g은 테이블의 모든 타이밍 지점에 대한 코드를 통합하는 복합 트리거 개념과 전역 선언 섹션을 단일 코드 개체로 통합하는 개념을 도입했습니다. 전역 선언 섹션은 모든 타이밍 지점에 대한 범위에 유지되며 예외가 발생하더라도 명령문이 완료되면 정리됩니다. 컴파운드 트리거 및 11g의 다른 트리거 관련 새로운 기능에 대한 기사는 여기에서 찾을 수 있습니다.

트리거는 Oracle 데이터베이스에 저장된 명명된 PL/SQL 블록으로 트리거이벤트가 발생할 때 암시적으로 실행됩니다. 오라클 데이터베이스의 시스템 이벤트 게시를 사용하면 응용 프로그램이 다른 응용 프로그램의 메시지를 구독하는 것처럼 데이터베이스 이벤트를 구독할 수 있습니다. 트리거는 :new 및 :Old 기능이 추가된 PL/SQL 익명 블록과 유사하지만 컴파일은 다릅니다. PL/SQL 익명 블록은 메모리에 로드될 때마다 컴파일됩니다. 컴파일에는 세 단계가 포함됩니다. 따라서 트리거를 컴파일해야 하는 경우 원격 사이트를 사용할 수 없는 경우 Oracle Database는 원격 데이터베이스에 액세스하는 명령문의 유효성을 검사할 수 없으며 컴파일이 실패합니다. 트리거가 컴파일을 완료하지 않으므로 이전 예제 예외 문을 실행할 수 없습니다. AFTER 행과 AFTER 문 트리거 중에서 선택하는 것은 감사중인 정보에 따라 다릅니다. 예를 들어 행 트리거는 각 테이블 행에 대한 값 기반 감사를 제공합니다.

트리거는 또한 사용자가 행 및 명령문 수준 감사 상황에서 유용할 수 있는 감사된 SQL 문을 발급하기 위한 «이유 코드»를 제공하도록 요구할 수 있습니다. 이러한 구문 중 하나를 포함하는 모든 뷰는 대신 OF 트리거를 사용하여 업데이터 처리할 수 있습니다. 대신 OF 트리거는 UPDATE, INSERT 및 DELETE 문을 통해 직접 수정할 수 없는 뷰를 수정하는 투명한 방법을 제공합니다. 다른 유형의 트리거와 달리 Oracle Database는 트리거 문을 실행하는 대신 트리거를 실행하기 때문에 이러한 트리거를 대신 트리거라고 합니다.