오류 내용과 해결 방법
ORA-00933 에러는 SQL구문에서 필요한 키워드가 빠져있거나 정확한 순서로 나열되지 않았을 때 발생합니다. 다음 SQL문은 필요한 요소의 키워드는 전부 나열되어 있습니다. 그렇다면 무엇 때문에 정확하게 끝나지 않았다는 에러 메시지를 표시할까요?
SQL> SELECT ename, comm FROM emp
2 WHERE job = 'SALESMAN' OR job = 'MANAGER'
3 ORDER BY comm NULLS LAST DESC;
ORDER BY comm NULLS LAST DESC
*
ERROR at line 3:
ORA-00933: SQL command not properly ended
emp표에서 판매원 ‘SALESMAN’ 과 관리자 ‘MANAGER’에 해당하는 데이터를 표시할 때, comm항목의 값을 내림차순으로 정렬하면서 null값을 가장 마지막에 표시하라는 SQL문입니다. ORDER BY구에서 “ASC 또는 DESC” 키워드는 “NULLS LAST 또는 NULLS FIRST“보다 먼저 기술 되어야 함에도 불구하고 반대 순으로 나열된 것이 원인으로 발생한 에러입니다.
이 에러를 수정한 SQL문은 다음과 같습니다.
SELECT ename, comm FROM emp
WHERE job = 'SALESMAN' OR job = 'MANAGER'
ORDER BY comm DESC NULLS LAST;
ORDER BY 구문 공식 사이트
자세한 ORDER BY clause의 설명은 아래 공식 사이트를 참조 하십시오.
ORDER BY clause
관련내용 추가 글
ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다 (SQL command not properly ended)