database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39156 게시물 읽기
No. 39156
ora-04091 에러 관련 도움좀 부탁드립니다. ㅜㅜ
작성자
정의석(me0457)
작성일
2011-12-12 10:11ⓒ
2011-12-12 10:18ⓜ
조회수
4,480

DROP TRIGGER EDITAX.TRG_IF_NTS_RESULT;

CREATE OR REPLACE TRIGGER EDITAX.TRG_IF_NTS_RESULT
  AFTER UPDATE OF RESULT_CODE ON EDITAX.TAX_INVOICE_HEADER
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW

DECLARE
    
  SET_LEGACY_PK1     VARCHAR2(25);
   
BEGIN

    IF :RESULT_CODE = 'Y' THEN
     
    SELECT LEGACY_PK1 INTO  SET_LEGACY_PK1
    FROM TAX_INVOICE TI, TAX_INVOICE_HEADER TIH
    WHERE TI.MSG_ID = TIH.MSG_ID
    AND TI.SEND_TYPE IN ('0000', '1100', '2000', '2500', '3100', '3030')
    AND TI.LEGACY_PK1 = :NEW.LEGACY_PK1;

        INSERT INTO SEND_TAX_INVOICE   
                                    (
                                    EAI_SEQ, LEGACY_SYSTEM_ID, LEGACY_PK1, EAI_SYSTEM_CD, EAI_STATE, EAI_OP,
                                    KT_GUBUN_CODE, KT_EMP_NO, DOC_APRF, VAT_TYPE, VAT_KIND, SEND_ID, RECV_ID,
                                    DOC_STATE, E_STATUS_CODE, E_STATUS_DATE, ESERO_SEND_GUBUN, ESERO_SEND_YN,       SEND_IDNUMBER, RECV_IDNUMBER,  MSG_ID, MSG_ID_REV, ISSUE_ID
                                    )
                                    (
                                    SELECT
                                       (SELECT MAX(EAI_SEQ) + 1 FROM SEND_TAX_INVOICE) EAI_SEQ, LEGACY_SYSTEM_ID, LEGACY_PK1, EAI_SYSTEM_CD, EAI_STATE, EAI_OP,
                                       KT_GUBUN_CODE, KT_EMP_NO, DOC_APRF, VAT_TYPE, VAT_KIND, SEND_ID, RECV_ID,
                                       DOC_STATE, E_STATUS_CODE, E_STATUS_DATE, ESERO_SEND_GUBUN, 'Y' ESERO_SEND_YN, SEND_IDNUMBER, RECV_IDNUMBER,
                                       MSG_ID, MSG_ID_REV, ISSUE_ID
                                    FROM SEND_TAX_INVOICE
                                    WHERE E_STATUS_CODE = '000'
                                    --AND LEGACY_PK1 = '201112110712431122540000'
                                    AND LEGACY_PK1 = SET_LEGACY_PK1
                                    );
 END IF;
 
END ;

 

트리거는 위와 같습니다.

제가 하고 싶은건 TAX_INVOICE_HEADER 테이블의 RESULT_CODE 라는 컬럼의 값이 변경되면

TAX_INVOICE_HEADER 테이블과 TAX_INVOICE 테이블을 조인하여

RESULT_CODE 컬럼이 변경된 TI.LEGACY_PK1 컬럼 값을 구해

아래의 INSERT 문에 파라메터로 사용하려고 하는데

ora-04091 에러가 발생합니다.

트리거에 대해서 찾아봐도 워낙 초짜라 기술적인 부분이 약하다 보니 이렇게 여기에 질문 드려봅니다. ㅜㅜ

이 글에 대한 댓글이 총 1건 있습니다.

2011-10-18 에 작성된 "trigger 질문 드립니다 ..." 의 Q&A를 참고 하세요.

hopper(bunny)님이 2011-12-20 13:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39160DB USER 테이블 컬럼별 의미..?
궁금이
2011-12-13
3429
39159오라클 테이블설계에 대한 질문좀 하겠습니다.
신규설계
2011-12-12
4137
39158RAC 병렬처리 속도 질문 [1]
김병수
2011-12-12
4003
39156ora-04091 에러 관련 도움좀 부탁드립니다. ㅜㅜ [1]
정의석
2011-12-12
4480
39155서버가 자기자신에게 계속 접근합니다
김허세
2011-12-09
3643
39154left outer join, 날짜 기준 sum, 합계, 총합계 [5]
김기운
2011-12-07
8513
39153MS-Sql 만쓰다가 Oracle로 넘어왔습니다. 임시테이블, 메모리테이블 문제..
유정헌
2011-12-07
4730
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다