미스터 역마살
[PL-SQL] PLS-00201 에러 발생시 대처 방법 본문
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
'Database > ORACLE' 카테고리의 다른 글
ORACLE 백업 및 복구 과제 3일차 (0) | 2021.07.16 |
---|---|
ORACLE 백업 및 복구 과제 2일차 (0) | 2021.07.16 |
ORACLE 백업 및 복구 과제 1일차 (0) | 2021.07.13 |
ORA-01119 에러 및 해결 방안 찾기 (1) | 2020.12.10 |
오라클 정규식 (REGEXP) 사용법 (2) | 2020.12.08 |
Comments