오라클 trigger 예제 | Can Felicià | Turisme rural , sostenible i gastronòmic 
 오라클 trigger 예제 
 경우 에 따라 AUDIT 문 은 보안 감사 시설 로 간주 되 며 트리거 는 재무 감사 기능 을 제공 할 수 있 습니다 . 트리거 를 사용 하 여 참조 무결 성 을 적용 할 수 있 는 경우 가 많 습니다 . 그러나 수행 중 인 작업 에 대한 선언 적 지원 이 없 는 경우 에 만 트리거 를 사용 해야 합니다 . 트리거 대신 에 대한 WHEN 절 을 지정 할 수 없 습니다 . ALTER 트리거 문 을 사용 하 여 트리거 를 수동 으로 다시 컴파일 합니다 . 예 를 들 어 다음 문 은 PRINT _ SALARY _ CHANGES 트리거 를 다시 컴파일 합니다 : 코딩 트리거 에 는 표준 PL / SQL 블록 에 필요 하 지 않 은 몇 가지 제한 사항 이 필요 합니다 . 다음 섹션 에서 는 이러 한 제한 사항 에 대해 설명 합니다 . 행 수준 DML 트리거 는 해당 트리 거 를 발생 시킨 테이블 에서 DML 을 쿼리 하 거나 수행 할 수 없 습니다 . 이렇게 하 려고 하 면 변경 테이블 예외 가 발생 합니다 . 부모 - 자식 관계 가 있 고 부모 테이블 의 트리거 가 자식 테이블 에서 일부 DML 을 실행 해야 하 는 경우 이 문제 가 약간 어색 해질 수 있 습니다 . 자식 테이블 에 상위 테이블 에 외래 키 ( FK ) 가 다시 있 는 경우 자식 테이블 의 DML 은 재귀 SQL 문 이 제약 조건 을 확인 하 게 됩니다 . 이렇게 하 면 간접 적 으로 변경 테이블 예외 가 발생 합니다 . 
 테이블 을 변경 하 는 예제 와 이 에 대한 해결 방법 은 여기 에서 찾 을 수 있 습니다 . 모든 데이터베이스 감사 정보 는 Oracle Database 의 감사 기능 을 사용 하 여 중앙 및 자동 으로 기록 됩니다 . 다음 예제 에서 프로시저 set _ ctx 는 사용 자 프로필 을 기반 으로 응용 프로그램 컨텍스트 를 설정 합니다 . 트리거 setexpensectx 는 모든 사용자 에 대해 컨텍스트 가 설정 되 도록 합니다 . 트리거 는 BEFORE 키워드 를 사용 하 기 때문 에 테이블 에 들어가 기 전 에 새 값 에 액세스 할 수 있 으며 : NEW . column _ name 에 할당 하 여 쉽 게 수정 할 수 있 는 오류 가 있 는 경우 값 을 변경 할 수 있 습니다 . 트리거 가 초기 변경 사항 이 적용 되 고 테이블 이 일관 된 상태 로 돌아온 후 에 만 트리거 가 수행 될 수 있 으므로 트리거 가 동일 한 테이블 을 쿼리 하 거나 변경 하 려는 경우 AFTER 키워드 를 사용 할 수 있 습니다 . 선택 적 으로 모든 업데이트 에 대해 이유 코드 를 강제 로 설정 하 려는 경우 이유 코드 를 NULL 로 다시 설정 할 수 도 있 습니다 . 다음 간단 한 AFTER 문 트리거 는 트리거 문 이 실행 된 후 이유 코드 를 NULL 로 다시 설정 합니다 .