PLS-00341: declaration of cursor 'CURSOR_NAME' is incomplete or malformed (커서 선언이 잘못되었거나 커서 선언에서 참조 된 식별자가 올바르게 선언되지 않았습니다.)

PLS-00341: declaration of cursor 'CURSOR_NAME' is incomplete or malformed 오류는 불완전하거나, 미완성이거나, 잘못된 방법으로 커서를 선언하였을 때에 발생합니다.

PLS-00341 declaration of cursor 'CURSOR_NAME' is incomplete or malformed

설명을 이렇게 포괄적으로 해드린 것처럼, 발생 원인을 한 가지로 확정하여 안내해 드리기 어려운 오류이기도 합니다. PLS-00341 오류 주변의 라인과 컬럼을 확인하시면 동반하는 다른 오류를 확인할 수 있을 것입니다. 해당 오류에 의해 연쇄적으로 오류가 발생하였을 가능성이 높으니, 해당 부분을 공략하시면 해결할 수 있을 것입니다.

참고로, 다음 예제는 존재하지 않는 테이블에 대해 커서를 선언하여 PLS-00341: declaration of cursor 'CURSOR_NAME' is incomplete or malformed 오류가 발생하는 것을 보여드리고 있습니다.

CREATE OR REPLACE PROCEDURE PROCEDURE_NAME
IS
   CURSOR CURSOR_NAME
   IS
      SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME FROM EMPLOYEES;

   EMP_REC   CURSOR_NAME%ROWTYPE;
BEGIN
   NULL;
EXCEPTION
   WHEN OTHERS
   THEN
      --Warning: compiled but with compilation errors
      --PLS-00341: declaration of cursor 'CURSOR_NAME' is incomplete or malformed
      DBMS_OUTPUT.PUT_LINE ('Error: ' || SQLERRM);
END;
/
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗