2011-12-24 3 views
0

다음은 저장 프로 시저를 호출하기위한 Java 코드입니다. 내가 말하는 오류가 계속 : java.lang.ClassCastException가 : oracle.jdbc.driver.OracleCallableStatementWrapper 호환되지 않는 oracle.jdbc.OracleCallableStatementJava에서 Oracle 저장 프로 시저 호출

public Connection initiateDBConnection() throws NamingException, 
     SQLException { 

    Connection result = null; 
    InitialContext initialContext = new InitialContext(); 

    DataSource datasource = (DataSource) initialContext 
      .doLookup(Constants.DATASOURCE_CONTEXT); 
    result = (Connection) WSJdbcUtil 
      .getNativeConnection((WSJdbcConnection) datasource 
        .getConnection()); 

    return result; 
} 

public void callStoredProcedure(String procedureName, 
     Map<Integer, Object> map) throws SQLException, NamingException { 
    OracleCallableStatement statement = (OracleCallableStatement) initiateDBConnection() 
      .prepareCall(procedureName); 
    Iterator<Entry<Integer, Object>> params = map.entrySet().iterator(); 
    while (params.hasNext()) { 
     Entry<Integer, Object> contents = params.next(); 
     statement.setNString(contents.getKey(), 
       (String) contents.getValue()); 
     System.out.println("Key: " + contents.getKey() + "Value: " 
       + contents.getValue()); 
    } 
    statement.execute(); 
    statement.close(); 
} 

답변

0

그것은의 prepareCall 메소드의 반환 OracleCallableStatementWrapper 개체를 나타납니다. 난 당신이 웹 스피어를 사용하는 것을 의미하여 편안히 앉 WSJdbcConnection에 나타났습니다

CallableStatement statement = (CallableStatement) initiateDBConnection() 
      .prepareCall(procedureName); 
+0

, 내가 처음 시도 이잖아하지만 난 SQL92 토큰 호환되지 오류 – Bytekoder

+0

그 구문을 지원하지 않는 구문이나 JDBC 드라이버에 문제가있을 수 점점 계속 . – nayakam

0

다음과 같이

OracleCallableStatementWrapper statement = (OracleCallableStatementWrapper) initiateDBConnection().prepareCall(procedureName); 

또한, 당신은 JAVA JDBC API으로 시도 할 수 있습니다. 이것이 사실이라면, 오라클 특정 클라리스 (OracleConnection, 등)를 사용해야 할 경우, websphere에서 제공하는 WSCallHelper 클래스를 조사하여 이러한 상황을 '깨끗하게'관리해야한다고 제안합니다. 네이티브 형식을 각각 호출하고 전달하는 두 가지 주요 메서드, jdbcCalljdbcPass을 제공합니다.

자세한 정보는 IBM에서이 문서에서 사용할 수 있습니다 : 분명히 http://www-01.ibm.com/support/docview.wss?uid=swg21409335

관련 문제