미스터 역마살

[PL-SQL] PLS-00201 에러 발생시 대처 방법 본문

Database/ORACLE

[PL-SQL] PLS-00201 에러 발생시 대처 방법

Mr. YeokMaSsal 2021. 7. 15. 23:17
728x90
반응형

에러상황

오라클 PLSQL로 FUNCTION을 만드는 과정에서 아래와 같은 에러가 발생 하였다.

CREATE OR REPLACE FUNCTION SPLIT_WORD (I_HAN_NAME IN VARCHR2) RETURN VARCHAR2
IS
/*-------------------------------------------------------------------
	단어 자동 분할 FUNCTION
-------------------------------------------------------------------*/
	v_ret VARCHAR2(200);
BEGIN
	SELECT  LISTAGG(A.WORD, '_') WITHIN GROUP(ORDER BY A.POS) AS WORD_AG
     INTO v_ret   
	  FROM (
	         SELECT A.*
			      , LAG(A.WORD) OVER (PARTITION BY A.TERM ORDER BY A.POS, A.LEN) AS WORD_BF
				  , LEAD(A.WORD) OVER (PARTITION BY A.TERM ORDER BY A.POS, A.LEN) AS WORD_AF
			   FROM (
			          SELECT A.TERM_NM AS TERM
					       , B.WORD_NM AS WORD
						   , INSTR(A.TERM_NM, B.WORD_NM) AS POS
						   , LENGTH(B.WORD_NM)           AS LEN
					    FROM (SELECT I_HAN_NAME AS TERM_NM FROM DUAL) A
						   , STD_WORD B -- 표준단어사전
					   WHERE 1=1
					     AND INSTR(A.TERM_NM, B.WORD_NM) > 0
			        ) A
	       ) A
	   WHERE 1=1
	     AND NVL(INSTR(A.WORD_AF, A.WORD),0) = 0
		 AND NVL(INSTR(A.WORD_BF, A.WORD),0) = 0
	   GROUP BY A.TERM
      ;


RETURN v_ret;
EXCEPTION 
	WHEN OTHERS THEN RETURN NULL;

END;

 

에러내용

2021/07/15 23:10:26 >
FUNCTION created with compilation error.
1/36  PLS-00201: identifier 'VARCHR2' must be declared
0/0  PL/SQL: Compilation unit analysis terminated

Execution Time : 00:00:01.00

 

PLS-00201 에러를 구글링 해보니 변수에 초기값을 선언해야하는것 같았다.

하지만 초기값을 선언해도 에러는 그대로였다....

 

해결방안

에러의 원인은 파라미터로 들어오는 변수의 데이터 타입의 오타였다...... ㅠㅠㅠ

오타를 다시한번 더 잘 확인 해보자!!

 

 

 

728x90
Comments