이번 글에서는 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