본문 바로가기
호기심천국

왜 xml문서에 적는 쿼리문에는 세미콜론(;)을 붙이면 안 될까?

by 호두빵 2021. 7. 6.

구글링을 통해 여러 사이트를 전전하면서 왜 붙이지 않는 건지를 파악하려고 노력해봤습니다. 그러나 대다수는 그냥 쓰지 않는다, 쓰면 에러가 난다 정도의 정보를 전달하고 있었다...... 쓰면 안 되는 것도, 쓰면 에러가 나는 것도 눈으로 확인해서 알겠는데 저는 그 궁극적인 이유가 궁금해서 조금 더 조사해본 결과는 아래와 같습니다.

 

강렬한 빨간 글씨들..마치 내가 세미콜론 쓰지 말랬찌!!!하는 것 같은데.. ORA-00911 에러,, 이상한 문자를 써서 그렇다고 하네요. 그건 바로 세미콜론이겠죠(알아요 나도!) 근데 왜 쓰면 안 되는 것인지도 알려주시면 좋을텐데..

 

여기저기서 구글링해본 결과 마이바티스를 사용할 때 단일 sql쿼리문을 실행할 때는 세미콜론을 쓰면 안 되는데, 이는 오라클 DB 인터페이스가 매우 엄격하게 쿼리작성포맷을 적용하며 따라서 세미콜론은 물론이고 때로는 띄어쓰기 하나, 점 하나까지도 이상한 형태로 파악을 하기 때문에 제대로 쿼리 실행이 안 되는 것이었습니다.

 

마이바티스에서 알아먹는 특수기호는 오직 #와 $뿐인데, 마이바티스 입장에서는 생전 처음 보는 ;가 등장하니 이게 뭐야! 나 일 안 해! 해버리게 되는 것이죠. 그러니 결론은...마이바티스를 쓸 때 쿼리를 마친다고 세미콜론을 쓰면 에러가 빰! 등장하니 세미콜론을 쓰지 맙시다. 

 

 

참고 사이트는 아래와 같습니다. 

https://www.programmersought.com/article/64352000228/https://ayoteralab.tistory.com/entry/Spring-BootError-Mybatis-Dynamic-Table-Select

 

mybatis xml file in the SQL statement can not end with a semicolon - Programmer Sought

In mybatis the sql configuration file, if it is a single sql statement is not stored procedures, write sql statement can not do at the end of a semicolon, otherwise when the program runs will be reported ora-00911: invalid character, such as: Baidu under t

www.programmersought.com

https://ayoteralab.tistory.com/entry/Spring-BootError-Mybatis-Dynamic-Table-Select

 

[Spring Boot][Error] Mybatis Dynamic Table Select

이번에는 Mybatis로 구성한 application에서 mapper로 table명을 string으로 넘겨주고 동적테이블(Dynamic Table)로 조회(Select)하는 방법에 대해서 알아보겠습니다. 때로는 구성하는 application의 db구조가 동..

ayoteralab.tistory.com

 

'호기심천국' 카테고리의 다른 글

properties 파일에는 절대 한글을 쓸 수 없을까?  (0) 2021.07.06