728x90
반응형
PLS-00201 : identifier 'A' must be declared 라는 애러메시지 해결방안에 대해 알아보자.
1. 원인
pl/sql에서 변수에 데이터타입에 맞지 않는 데이터를 대입했을 경우에 애러가 발생한다.
DECLARE
A VARCHAR2(100);
BEGIN
A := TEST;
END;
위와 같은 구문에서 애러가 발생한다.
이유는
A := TEST; 가 아니라
A := 'TEST'; 라고 작성해야 하기 때문이다.
하지만 sqlplus 에서 이 pl/sql파일을 .sql파일로 저장하고 실행을 할 때 문제가 생긴다.
DECLARE
A VARCHAR2(100);
BEGIN
A := &1;
END;
만약 .sql파일로 저장을 하고 파라미터를 받아야 할 경우 대부분 위와 같이 작성하여 실수를 저지른다.
이후 sqlplus에서 호출을 한다.
SQL> a.sql TEST
이 때 sqlplus 에서 위와 같이 작성하면 PLS-00201애러가 발생한다.
PLS-00201 : identifier 'TEST' must be declared
2. 해결방안
이 문제를 해결하기 위해서는 2가지 방법이 있다.
2-1. 첫 번째 해결방안
파라미터를 넘길 때 홑따옴표(')도 같이 넘긴다.
SQL> a.sql "'TEST'"
위와 같이 홑따옴표(')도 같이 변수에 넘기면 해결할 수 있다.
2-2. 두 번째 해결방안
DECLARE
A VARCHAR2(100);
BEGIN
A := '&1';
END;
pl/sql블록에 위 처럼 &1 -> '&1' 을 통해 해결가능하다.
728x90
반응형
'DB (데이터베이스) > Oracle (오라클)' 카테고리의 다른 글
[Oracle] oracle verify function 적용방법 (0) | 2024.05.31 |
---|---|
[Oracle] oracle UTL_FILE 패키지로 파일 생성하고 내용쓰기 (0) | 2024.05.30 |
[Oracle] oracle error Warning : too many parse errors 원인, 해결 (0) | 2024.05.27 |
[Oracle] oracle에서 lock object를 조회하는 방법 (0) | 2024.05.10 |
[Oracle] oracle datafile rename방법 (0) | 2024.05.10 |