DB/Oracle

오라클 ORA-04091 오류 대응 트리거

Lohen 2016. 2. 4. 23:24
create or replace 
PACKAGE AMOUNT_DATA_R_PACK AS 

  TYPE ISEQNO         IS TABLE OF AMOUNT_DATA_R.I_SEQNO%TYPE INDEX BY BINARY_INTEGER;
  TYPE ITDIFNO        IS TABLE OF AMOUNT_DATA_R.I_TDIFNO%TYPE INDEX BY BINARY_INTEGER;
  TYPE CDATDT         IS TABLE OF AMOUNT_DATA_R.C_DATDT%TYPE INDEX BY BINARY_INTEGER;
  TYPE FCRFLW         IS TABLE OF AMOUNT_DATA_R.F_CRFLW%TYPE INDEX BY BINARY_INTEGER;
  TYPE FCRLVL         IS TABLE OF AMOUNT_DATA_R.F_CRLVL%TYPE INDEX BY BINARY_INTEGER;
  TYPE FACVLM         IS TABLE OF AMOUNT_DATA_R.F_ACVLM%TYPE INDEX BY BINARY_INTEGER;
  TYPE CPS            IS TABLE OF AMOUNT_DATA_R.C_PS%TYPE INDEX BY BINARY_INTEGER;
  TYPE DINSDT         IS TABLE OF AMOUNT_DATA_R.D_INSDT%TYPE INDEX BY BINARY_INTEGER;
  TYPE CPSO            IS TABLE OF AMOUNT_DATA_R.C_PS%TYPE INDEX BY BINARY_INTEGER;
  TYPE FACVLMO         IS TABLE OF AMOUNT_DATA_R.F_ACVLM%TYPE INDEX BY BINARY_INTEGER;
  
  NEW_ISEQNO ISEQNO;
  NEW_ITDIFNO ITDIFNO;
  NEW_CDATDT CDATDT;
  NEW_FCRFLW FCRFLW;
  NEW_FCRLVL FCRLVL;
  NEW_FACVLM FACVLM;
  NEW_CPS CPS;
  NEW_DINSDT DINSDT;
  NEW_CPSO CPSO;
  NEW_FACVLMO FACVLMO;
  
  SUB_INDEX           BINARY_INTEGER;
END AMOUNT_DATA_R_PACK;

1. 데이터 넣으려고 패키지 생성

2.  데이터 초기화 BEFORE일경우에

create or replace 
TRIGGER AMOUNT_DATA_R_B_TRG 
BEFORE INSERT OR DELETE OR UPDATE ON AMOUNT_DATA_R 
BEGIN
  AMOUNT_DATA_R_PACK.SUB_INDEX := 0; 
END;

3. 데이터 입력 AFTER일경우에

4. 실재 트리거에서

사용

AMOUNT_DATA_R_PACK.NEW_FCRFLW(1)

이런식으로

이상


반응형