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

공유하기

  • Add this entry to Hatena Bookmark
  • 0

작업 환경

오류 재현

다음과 같이 문장 부호 세미콜론(semicolon)은 오라클에서 SQL문장의 종료 기호로 사용됩니다. 잘못된 장소에 사용하면 다음과 같은 오류가 표시됩니다.

SQL> select object_name from user_objects ; order by object_name;
select object_name from user_objects ; order by object_name
                                     *
1행에 오류:
ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

숫자를 시작하는 테이블 별명을 사용하면 다음 과 같은 오류가 표시됩니다.

SQL> select object_name from user_objects 123nickname order by object_name;
select object_name from user_objects 123nickname order by object_name
                                     *
1행에 오류:
ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

버전에 따라 함수를 실행해서 테이블 형태로 출력을 하는경우 다음 과 같은 오류가 표시됩니다.

SQL> select * from getEmployList('Manager');
                   *
1행에 오류:
ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

참고로 영문메시지로 표시되면 다음과 같습니다.

C:\>set nls_lang=American_America.AL32UTF8
SQL> select object_name from user_objects ; order by object_name;
select object_name from user_objects ; order by object_name
                                     *
ERROR at line 1:
ORA-00933: SQL command not properly ended

수정후 실행 결과

잘못된 장소에 사용된 세미콜론(semicolon)을 삭제하고 다시 실행합니다. 실행 결과는 다음과 같습니다.

SQL> select object_name from user_objects order by object_name;

OBJECT_NAME
-----------------------------------------------------------------
AQ$_INTERNET_AGENTS
AQ$_INTERNET_AGENT_PRIVS

... 중간 생략 ...
460 rows selected.

숫자를 시작하는 테이블 별명을 영문으로 변경하고 다시 실행합니다. 실행 결과는 다음과 같습니다.

SQL> select object_name from user_objects nickname order by object_name;

OBJECT_NAME
-----------------------------------------------------------------
AQ$_INTERNET_AGENTS
AQ$_INTERNET_AGENT_PRIVS

... 중간 생략 ...
460 rows selected.

테이블형 출력 함수를 사용하여 다시 실행합니다. 실행 결과는 다음과 같습니다.

SQL> select * from Table(getEmployList('Manager'));
EMPNO ENAME  JOB      MGR HIREDATE  SAL COMM DEPTNO
----- ------ ------- ---- -------- ---- ---- ------
 7566 JONES  MANAGER 7839 81/04/02 2975          20
 7698 BLAKE  MANAGER 7839 81/05/01 2850          30
 7782 CLARK  MANAGER 7839 81/06/09 2450          10