본문으로 바로가기

 

 

이번 글에서는 ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다. 에러에 대하여 알아보도록 하겠습니다.

 

ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다
ORA-00933:  "SQL command not properly ended"

 

쿼리를 짤 때 다음과 같은 에러가 종종 발생합니다.

 

 

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.

아래의 쿼리는 소문자를 포함하는 text 컬럼을 조회하는 쿼리입니다.

 

위의 쿼리를 실행하니 ORA-00933:  "SQL command not properly ended" 에러가 발생하였습니다.

 

이 에러는 명령문을 올바르게 입력하지 않아서 발생한 에러입니다.

즉, 위의 쿼리로만 본다면 SELECT ~ FROM ~ WHER 로 되어있습니다. 

하지만, 저게 아니고 SELECT ~ FROM ~ WHERE 이 와야합니다.

 

또한, 이 에러는 같은 명령문을 2번 이상 사용하였을 때 이런 에러가 발생합니다.

SELECT, FROM, WHERE 같은 경우는 한 쿼리에 한 번만 작성이 되어야 합니다. 

(서브쿼리 혹은 WITH절 등인 경우 제외)

 

해결 방법

1. 명령문을 오타없이 제대로 입력합니다.

2. 명령문을 한 번만 사용합니다.

3. UNION (ALL) 사용시 ORDER BY 는 UNION (ALL) 다음에 오는 쿼리에만 사용합니다.

 

 

이제 명령문을 오타없이 올바르게 입력하여 다시 쿼리를 실행해 보도록 하겠습니다.

 

명령문을 올바르게 입력하니까 정상적으로 쿼리가 실행되는 것을 확인할 수 있습니다.

 

 

Reference

REGEXP_LIKE() 함수