본문 바로가기
목차
Spring

Request processing failed; nested exception is java.sql.SQLSyntaxErrorException: ORA-00904: "NUM": 부적합한 식별자

by 지각생 2022. 1. 6.
728x90

원인

String sql = "SELECT * FROM NOTICE WHERE "+field+" LIKE ? AND NUM BETWEEN ? AND ?";

 

해결

String sql = "SELECT * FROM NOTICE WHERE "+field+" LIKE ? AND ID BETWEEN ? AND ?";

 

 

 

 

HTTP 상태 500 – 내부 서버 오류


타입 예외 보고

메시지 Request processing failed; nested exception is java.sql.SQLSyntaxErrorException: ORA-00904: "NUM": 부적합한 식별자

설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

예외

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.sql.SQLSyntaxErrorException: ORA-00904: "NUM": 부적합한 식별자

	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

근본 원인 (root cause)

java.sql.SQLSyntaxErrorException: ORA-00904: "NUM": 부적합한 식별자

	oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
	oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
	oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
	oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)
	oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
	oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
	oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
	oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
	oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
	oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
	oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
	oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
	oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
	oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
	oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
	com.newlecture.web.service.NoticeService.getList(NoticeService.java:34)
	com.newlecture.web.controller.notice.ListController.handleRequest(ListController.java:30)
	org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

근본 원인 (root cause)

Error : 904, Position : 46, Sql = SELECT * FROM NOTICE WHERE TITLE LIKE :1  AND NUM BETWEEN :2  AND :3 , OriginalSql = SELECT * FROM NOTICE WHERE TITLE LIKE ? AND NUM BETWEEN ? AND ?, Error Msg = ORA-00904: "NUM": 부적합한 식별자

	oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
	oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
	oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
	oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)
	oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
	oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
	oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
	oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
	oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
	oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
	oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
	oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
	oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
	oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
	oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
	com.newlecture.web.service.NoticeService.getList(NoticeService.java:34)
	com.newlecture.web.controller.notice.ListController.handleRequest(ListController.java:30)
	org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다.

728x90

댓글