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

작업 환경

오류 재현

다음과 같이 문장 부호 세미콜론(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

タイトルとURLをコピーしました