현재 하고 있는 프로젝트를 빠르게 진행하다 보니 시작은 MySQL로 시작했다가 중간에는 Oracle로 바꿨다.
JDBC드라이버와 URL등을 다 바꾸고 쿼리 부분도 오라클에 맞게 수정을 해준 다음 해보면 에러가 발생 하였다.
Cannot create PoolableConnectionFactory (ORA-00923: FROM keyword not found where expected
위와 같은 에러.
에러 내용을 보면 알겠지만 FROM절 뒤의 키워드가 잘못됐다? 못찾겠다?
나는 분명 쿼리에 문제가 없고 그 쿼리를 SQL Developer에 넣어 돌려보면 정상적인 값이 나온다.
분명 쿼리에는 문제가 없다.
모든 방법을 다 동원해서 해봤지만 나오는 결과는 똑같았다.
검색을 해보면 쿼리가 잘못 됐다거나 오라클 방화벽 문제거나 리스너가 구동 되지 않은 상태에서 하면 저런 결과가 나온다는 말뿐.
그러다 검색된 결과가..
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}"
p:password="${jdbc.password}"
p:validationQuery="SELECT 1 FROM DUAL"
p:testOnBorrow="true"
p:testWhileIdle="true"
p:timeBetweenEvictionRunsMillis="6000"
p:removeAbandoned="true"
p:removeAbandonedTimeout="60"/>
database-context.xml의 내용이다.
p:validationQuery="SELECT 1 FROM DUAL" 이게 문제였다.
Oracle이외의 DataBase는 SELECT 1을 쓴다고 한다.
Oracle로 변경을 하면서 저것을 바꿔주지 않으니 났던 에러였다.
SELECT 1이었던 값을 SELECT 1 FROM DUAL로 바꿔주니 아주 잘 된다.
이것 때문에 대체 얼마나 많은 시간을 소비한건지..-_-;;
'Oracle' 카테고리의 다른 글
ora-01034 oracle not available (0) | 2015.09.18 |
---|---|
The Network Adapter could not establish the connection(TNS-17002) (0) | 2015.09.17 |
ORA-01031: insufficient privileges (0) | 2015.09.01 |
Oracle 컬럼 추가, 컬럼명 수정.. (0) | 2014.08.14 |
Oracle Account 생성.. (0) | 2011.04.18 |