본문 바로가기

db/oracle

PLS-00103: 심볼 "변수"를 만났습니다 다음 중 하나가 기대될 때

반응형

PLS-00103: 심볼 "변수"를 만났습니다 다음 중 하나가 기대될 때:    . * @ & = - + ; < / > at in is mod remainder not rem    <지수(**)> <> or != or ~= >= <= <> and or like like2 like4    likec between || member    <작은 따옴표로 묶인 SQL 문자열> submultiset 심볼이 "<작은 따옴표로 묶인 SQL 문자열> 계속하기 위해 "변수" 전에 삽입되었음

 

PLS-00103 오류는 Oracle PL/SQL에서 매우 흔하게 발생하는 문법 오류 중 하나입니다. 주로 예상치 못한 위치에서 END 키워드가 발견되었을 때 발생하며, 이는 PL/SQL 블록이나 문장의 구조에 문제가 있다는 것을 의미합니다.

 

오류 발생 원인
  • 세미콜론(;) 누락 : 각 문장의 끝에는 세미콜론(;)이 필요합니다. 세미콜론이 누락되면 다음 문장의 시작으로 인식되어 오류가 발생할 수 있습니다.
  • END 키워드의 위치 : BEGIN과 END는 블록의 시작과 끝을 나타냅니다. END 키워드의 위치가 잘못되면 블록이 제대로 닫히지 않아 오류가 발생합니다.
  • 식별자 누락 : 특정 키워드 뒤에는 식별자(변수명, 객체명 등)가 와야 하는 경우가 있는데, END 키워드가 잘못 사용되면 식별자가 누락된 것으로 인식됩니다.

중첩된 블록 : 블록이 중첩되어 있을 때 BEGIN과 END의 짝이 맞지 않으면 오류가 발생할 수 있습니다.

오류 해결 방법

 

1. 코드 꼼꼼히 검토

  • 각 문장의 끝에 세미콜론(;)이 있는지 확인합니다.
  • BEGIN과 END가 올바른 위치에 있는지 확인합니다.
  • 식별자가 제대로 선언되고 사용되었는지 확인합니다.
  • 중첩된 블록이 있다면 BEGIN과 END가 짝을 이루는지 확인합니다.

2. 디버거 사용

  • 디버거를 사용하여 코드를 한 줄씩 실행하며 오류가 발생하는 부분을 찾을 수 있습니다.

3. 오라클 문서 참조

  • 오라클 공식 문서에서 PLS-00103 오류에 대한 자세한 설명을 확인할 수 있습니다.
예시
DECLARE
  v_number NUMBER := 10;
BEGIN
  v_number := v_number + 5;  -- 세미콜론 누락
END;
  • 오류 메시지 : 오류 메시지에 표시된 줄 번호와 열 번호를 참고하여 오류가 발생한 위치를 파악하는 것이 좋습니다.
  • 코드 포맷 : 코드를 가독성 있게 작성하면 오류를 찾기 쉽습니다. 들여쓰기를 사용하여 블록의 구조를 명확하게 나타내는 것이 좋습니다.
  • 자주 발생하는 오류 : PLS-00103 오류는 PL/SQL을 처음 배우는 사람들이 자주 겪는 오류 중 하나입니다. 꾸준히 연습하고 경험을 쌓으면 이러한 오류를 줄일 수 있습니다.
반응형