728x90
에러 발생
java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
### The error may exist in mybatis/mappers/Board.xml
### The error may involve Board.searchPost-Inline
### The error occurred while setting parameters
### SQL: <![CDATA[ select b.no no
,b.title title
,u.name name
,b.hit hit
,to_char(b.reg_date, 'yyyy-mm-dd hh24:mi:ss') reg_date
,b.user_no user_no
from board b, users u
where b.user_no = u.no
and b.title like '%'||?||'%'
order by b.no desc
### Cause: java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
어제 게시판 검색 관련 기능을 제작하던 도중 쿼리와 관련된 오류가 발생하였다.
MyBatis에서는 처음으로 like 관련 명령어를 작성하는 것이기 때문에 and b.title like '%'||?||'%' 이 문장의 오류로 인지하고
계속해서 수정을 했지만 해당 오류를 고치지 못했다.
그리고 지금은 어제 오류를 재현한 탓에 보이지 않은 오류가 존재하는데
해당 오류에 <select id="getBoardList" resultMap = "bMap">에 오류가 있다고 함께 적혀 있어서
아니 지금 like가 들어있는 코드는 <select id="searchPost" parameterType="String" resultMap = "bMap">인데 왜 getBoardList에서 오류가 있다고 뜨는 것일까 생각했다.
문제 해결
문제 해결은 생각보다 간단했다.
<! [CDATA []]>의 중복 입력으로 일어난 오류였고, 해당 문구를 삭제함으로써 문제가 해결되었다.
웃기게도 해당 에러를 발견하기까지 한 시간이 넘게 소요가 되었다.
시야가 좁아지면 안 된다는 교훈을 준 에러다..
반응형