2010-06-04 3 views
0
CREATE TRIGGER Background_Process_Report_trit 
AFTER INSERT 
ON Background_Process_Report 
FOR EACH ROW 
IF INSERT(PROCESS_NAME) 
BEGIN 
    SET EXECUTION_TIMESTAMP := NEW.TIMESTAMP; 
END; 
/

process_name - 내 Background_Process_Report 테이블의 열입니다. Java 응용 프로그램에서 process_name을 만들 때마다 업데이트하려고합니다. 트리거는 EXECUTION_TIMESTAMP 테이블에서 시간을 업데이트합니다. 는하지만 컴파일시 오류를 던지고있다 ..오라클 트리거 생성시 삽입 오류가 발생합니까?

오류 :

IF INSERT(PROCESS_NAME) 
* 
ERROR at line 5: 
ORA-04079: invalid trigger specification

이 오류를 reslove하는 방법

+0

'INSERT (PROCESS_NAME)'에 무엇을 하시겠습니까? –

답변

4

당신이 다음 원하는 열에 있어야 말한대로 EXECUTION_TIMESTAMP 테이블 인 경우 업데이트, TIMESTAMP_COL이라고 부르 자. 다음은 트리거가 될 것 같은 뭔가 : 나는 "null 이외의 값이 PROCESS_NAME에 삽입되어있는 경우"와 창조 "INSERT (PROCESS_NAME)에 묻 으면"무슨 뜻으로 절에 맞게 때 가정 한

CREATE TRIGGER Background_Process_Report_trit 
AFTER INSERT 
ON Background_Process_Report 
FOR EACH ROW 
WHEN (NEW.PROCESS_NAME IS NOT NULL) 
BEGIN 
    UPDATE EXECUTION_TIMESTAMP 
    SET TIMESTAMP_COL = NEW.TIMESTAMP 
    WHERE ???; -- Change ??? to the appropriate condition 
END; 
/

.

+0

감사 ... 잘 작동합니다. – murali

관련 문제