2012-05-20 1 views
2

일부 절차로 oracle 패키지를 생성하려고하는데 컴파일 오류가 발생합니다. 어떻게이 코드를 디버그 할 수 있습니까?절차가있는 PL/SQL 패키지 작성

CREATE OR REPLACE PACKAGE BODY es IS 
    PROCEDURE spisok(parent_id IN INTEGER) 
    AS ID SPISOK_UZLOV.SP_ID%TYPE; 
     CURSOR child_id IS SELECT fr_id FROM frame WHERE fr_fr_id=parent_id; 
    BEGIN 
     INSERT INTO SPISOK_UZLOV VALUES(parent_id); 
     OPEN child_id; 
     LOOP 
      FETCH child_id INTO ID; 
      EXIT WHEN child_id%NOTFOUND; 
      spisok(ID); 
     END LOOP; 
     CLOSE child_id; 
    END spisok; 
END es; 

[Err] ORA-24344 : 컴파일 오류가 발생합니다.

+0

절차 내에서 동일한 절차를 호출합니까? 이것을 피해야하는 것은 아닙니다 – Satya

+0

재귀입니다 : –

+0

'show errors'의 출력을 게시하십시오. –

답변

1

SHOW ERROR 몇 가지 힌트를 줄 수 있습니다.

+0

하나의 필드가있는 SPISOK_UZLOV 테이블이 있습니다. –

+1

확인. 'SHOW ERROR'가 말하는 것은 무엇입니까? – kmkaplan

+0

쇼 오류가 도움이됩니다. 감사. –

0

이것은 패키지 본체의 코드입니다. 패키지를 먼저 선언 했습니까? 참조 용으로이 링크를 참조하십시오. http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/09_packs.htm

+0

예. 패키지가 선언되었습니다. 패키지 작성 또는 교체 es IS PROCEDURE spisok (parent_id IN INTEGER); end es; –

+0

다음 명령을 실행할 때 어떤 결과가 발생합니까? show errors procedure es.spisok ()? – sul