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

강렬한 빨간 글씨들..마치 내가 세미콜론 쓰지 말랬찌!!!하는 것 같은데.. 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 |
---|