프로시져 MYPROCEDURE() 은 SQL PLUS 에서
>EXEC MYPROCEDURE('A','B',100); 로 잘 실행됩니다.
그런데
Trigger 에서,
BEGIN
IF(:NEW.VALUE IS NOT NULL) THEN
EXECUTE IMMEDIATE MYPROCEDURE(:NEW.ID,:NEW.USERID,:NEW.VALUE);
END IF;
END;
라고 하고 compile 하니 아래와 같은 에러가 뜹니다.
Line # = 3 Column # = 21 Error Text = PLS-00222: 'MYPROCEDURE'¿¿ ¿¿¿ ¿¿¿ ¿¿ ¿¿ ¿¿¿¿ ¿¿¿¿
Line # = 3 Column # = 3 Error Text = PL/SQL: Statement ignored
에러문자가 이상하게 나오지만 MYPROCEDURE 를 인식하지 못하는 것 같습니다.
augument 들의 type은 정확하게 맞췄습니다.
좀 도와 주십시오.
사용자는 owner 이고 create any tirgger, execute any procedure 등 권한은 직접 주었습니다.
/* 답변 */
프로시져를 실행하는
EXECUTE IMMEDIATE 를 사용하지말고
그냥 MYPROCEDURE(:NEW.ID,:NEW.USERID,:NEW.VALUE);
'SQL > ORACLE' 카테고리의 다른 글
[ORACLE] LEAST함수를 이용한 SQL문 (0) | 2014.02.12 |
---|---|
[ORACLE]COUNT(DECODE.....)를 이용한 SQL문 (0) | 2014.02.12 |
[ORACLE]해당월의 마지막 일 가져오기 LAST_DAY (0) | 2014.02.12 |
[ORACLE]프로시저 컴파일하는 방법 (0) | 2014.02.12 |
[ORACLE]커서를 이용한 프로시저 (0) | 2014.02.12 |
[ORACLE]프로시저에서 커서 이용해서 돌리기 CHR 이용 (0) | 2014.02.12 |
[ORACLE]중복된 값 있는지 찾기. ROWID 이용 (0) | 2014.02.12 |
[ORACLE]존재하는지 안하는지 여부 알아내기 (0) | 2014.02.12 |