오라클 프로시저에 배열전달 시 오류 문제
- 작성자 :
- 김*수
- 작성일 :
- 2013-07-12 09:46:25
- 조회수 :
- 2,097
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
수고하십니다.
오라클 프로시저에 배열을 전달하기 위해 Type변환을 위한 TypeHandler를 만들어 테스트 했습니다.
public void setParameter (ParameterSetter setter, Object parameter) throws SQLException {
String[] strArr = (String[])parameter;
Connection conn = setter.getPreparedStatement().getConnection();
ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("VARRTEL", conn); --> 이 위치에서 다음의 오류가 나타납니다.
Cause: java.lang.ClassCastException: org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast to oracle.jdbc.OracleConnection; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
이에 대한 해결책을 알고 싶습니다.
개발환경 : egov2.5 + tomcat 6 + oracle 10g 입니다.
감사합니다.
오라클 프로시저에 배열을 전달하기 위해 Type변환을 위한 TypeHandler를 만들어 테스트 했습니다.
public void setParameter (ParameterSetter setter, Object parameter) throws SQLException {
String[] strArr = (String[])parameter;
Connection conn = setter.getPreparedStatement().getConnection();
ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("VARRTEL", conn); --> 이 위치에서 다음의 오류가 나타납니다.
Cause: java.lang.ClassCastException: org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast to oracle.jdbc.OracleConnection; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
이에 대한 해결책을 알고 싶습니다.
개발환경 : egov2.5 + tomcat 6 + oracle 10g 입니다.
감사합니다.
A
안녕하세요. 김기수님.
ArrayDescriptor는 native connection이 필요하기 때문에 발생된 오류입니다.
DBCP를 사용하신 경우는 Spring에서 제공하는 CommonsDbcpNativeJdbcExtractor를 통해 native connection을 가져오실 수 있습니다.
CommonsDbcpNativeJdbcExtractor의 getNativeConnection() 메소드입니다.
그럼, 즐거운 하루되십시오.
감사합니다.
ArrayDescriptor는 native connection이 필요하기 때문에 발생된 오류입니다.
DBCP를 사용하신 경우는 Spring에서 제공하는 CommonsDbcpNativeJdbcExtractor를 통해 native connection을 가져오실 수 있습니다.
CommonsDbcpNativeJdbcExtractor의 getNativeConnection() 메소드입니다.
그럼, 즐거운 하루되십시오.
감사합니다.