트리거가 처음입니다. 트리거를 만드는 동안 어떤 컴파일 오류가 없는지트리거의 UTL_FILE.FCOPY 관련 문제
CREATE OR REPLACE TRIGGER ac01_control_trigg
AFTER INSERT ON AC01_CONTROL_TEST
FOR EACH ROW
DECLARE
BEGIN
IF :NEW.cur_pgm_name = 'LSN' AND :NEW.nxt_pgm_name ='MD' AND :NEW.file_status='RD' THEN
UTL_FILE.Fcopy (:NEW.FILE_PATH,:NEW.FILE_NAME,:NEW.FILE_PATH,'CP.txt');
INSERT INTO AC1_CONTROL_TEST
(FILE_NAME, FILE_PATH,CUR_PGM_NAME,NXT_PGM_NAME,FILE_STATUS)
VALUES (:NEW.FILE_NAME, :NEW.FILE_PATH,:NEW.CUR_PGM_NAME,'MD_MPS',:NEW.FILE_STATUS);
END IF;
END ac01_control_trigg;
: 나는 아래 트리거를 만들었습니다. 하지만 테이블에 항목을 삽입하려고하면 다음과 같은 오류가 나타납니다.
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 258
ORA-06512: at "SYS.UTL_FILE", line 1167
ORA-06512: at "CNGDB18.AC01_CONTROL_TRIGG", line 4
ORA-04088: error during execution of trigger 'CNGDB18.AC01_CONTROL_TRIGG'
아무도 도와 줄 수 있습니까?
편집 : 삽입 문은 다음과 같습니다 :
유닉스에INSERT INTO AC01_CONTROL_TEST
(FILE_NAME, FILE_PATH, CUR_PGM_NAME, NXT_PGM_NAME, FILE_STATUS)
VALUES
('SSMS_FSMS_ID000386_T20081224153437_OFWPAC_OMG011.DAT', '/dhiusr3/sub/cng/cngwrk18/var/m3g/projs/up/data/MAF_SMS/20091216/13/15490000/', 'LSN', 'MD', 'RD');
:
0> pwd
/dhiusr3/sub/cng/cngwrk18/var/m3g/projs/up/data/MAF_SMS/20091216/13/15490000
해당 링크의 예제를 보면 FILE_PATH의 마지막 슬래시가 포함되어서는 안됩니다. 그 이름의 파일이 dir에 있다고 가정합니다. – MadMurf
문제점이 트리거가 아닌 UTL_FILE과 관련됩니다. SQL * Plus 프롬프트에서 실행되는 PL/SQL 블록에서 코드가 여전히 실패합니다. – APC