[Oracle] "ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다" 오류 발생 원인과 해결 방법

2024. 8. 18. 18:22·디버깅∕오류해결
728x90

문제 현상

특정 SQL문이 "ORA-00933: SQL command not properly ended" 오류 로그를 남기며 수행되지 못하는 현상이 발생했다.

"SQLSyntaxErrorException -> ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다"

 

문제 원인

에러 로그 중 SQLSyntaxErrorException (문법 에러)라는 키워드에 힌트를 얻어 SQL문을 살펴봤다. 보통은 쿼리 작성 시 오타나 잘못된 SQL 문법을 사용했을 경우 발생하는 에러이다.

 

다만, 내 경우엔 아래 쿼리처럼 단순 SELECT 문이어서 문법상 잘못된 점을 찾아보기 어려웠다.

SELECT column_1, column_2 FROM my_table;

 

원인을 알아본 결과, SQL 구문 끝에 세미콜론(;) 이 포함되었기 때문임을 알았다.

SQL 표준 문법 상, SQL 구문은 세미콜론(;)으로 끝맺는 것이 옳다고 알고 있어서 납득하기 어려웠다.

 

문제 재현을 위해 간단한 JDBC SELECT 쿼리 테스트를 진행해 보았다.
결론적으로 Oracle DB는 JDBC 쿼리에서 세미콜론을 입력한 경우 아래의 에러를 반환하는 것을 알 수 있었다.

java.sql.SQLSyntaxErrorException: ORA-00911: invalid character

 

실제로 오라클 포럼에도 왜 JDBC Oralce에서는 세미콜론이 허용되지 않는가 에 대한 질문이 올라와있다.

 

오라클에서 세미콜론(;)은 SQL-Plus 혹은 PL/SQL 에서 Statement 구분을 위해 사용되고

ODBC/JDBC, OLEDB, 등 다른 연결 방식을 사용할 때는 문장 끝에 세미콜론(;)을 붙이지 않아야 한다고 한다.

 

해결방법

Oracle JDBC 단순 SQL 구문에는 세미콜론(;)을 사용하지 않아야 한다.

SELECT column_1, column_2 FROM my_table

세미콜론을 지우고 구동하자 정상적으로 동작하는 것을 확인할 수 있었다.

 

 

728x90
저작자표시 비영리 동일조건 (새창열림)

'디버깅∕오류해결' 카테고리의 다른 글

[PostgreSQL] "치명적오류: 최대 동시 접속자 수를 초과했습니다" 오류 발생 원인과 해결 방법  (1) 2024.12.20
[IntelliJ] No candidates found for method call plugins 오류 해결(Gradle 프로젝트)  (0) 2024.10.11
[IntelliJ - Gradle build] error: package javax.xml.bind does not existimport javax.xml.bind.DatatypeConverter;  (0) 2024.05.20
[IntelliJ] 프로젝트 import 구문 에러 발생할 경우, 해결 방법  (0) 2024.05.20
Address already in use: JVM_Bind  (0) 2022.04.03
'디버깅∕오류해결' 카테고리의 다른 글
  • [PostgreSQL] "치명적오류: 최대 동시 접속자 수를 초과했습니다" 오류 발생 원인과 해결 방법
  • [IntelliJ] No candidates found for method call plugins 오류 해결(Gradle 프로젝트)
  • [IntelliJ - Gradle build] error: package javax.xml.bind does not existimport javax.xml.bind.DatatypeConverter;
  • [IntelliJ] 프로젝트 import 구문 에러 발생할 경우, 해결 방법
heestory217
heestory217
Done is better than Perfect! 좌충우돌 개발일지💻
    250x250
  • heestory217
    Heello World
    heestory217
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • 컴퓨터일반 (0)
      • WEB (1)
      • JAVA (3)
      • Python (9)
      • C (1)
      • DataBase (17)
        • Oracle (2)
        • MySQL (9)
        • SAP HANA (4)
        • PostgreSQL (0)
      • 디버깅∕오류해결 (14)
      • 코딩테스트 (54)
        • 자료구조∕알고리즘 (3)
      • 정보처리기사 (10)
      • Git∕GitHub (7)
      • 기타 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스 카카오
    정처기 실기
    MySQL
    정처기 수제비 실기문제
    hashmap sort
    정처기 실기 예상문제
    코딩테스트
    IntelliJ
    treeset
    파이썬 포맷팅
    정처기 수제비
    인텔리제이
    treemap
    Guava library
    배열 정렬하기
    leetcode
    정처기 수제비 데일리 문제
    HashMap
    SAP HANA Studio
    Sort a HashMap in Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
heestory217
[Oracle] "ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다" 오류 발생 원인과 해결 방법
상단으로

티스토리툴바