У меня возникли проблемы с литьем CallableStatement
на OracleCallableStatement
. Это дает ClassCastException
так:oracle.jdbc.OracleCallableStatement cast exception
java.lang.ClassCastException:
oracle.jdbc.driver.OracleCallableStatementWrapper cannot be cast to
oracle.jdbc.driver.OracleCallableStatement
И код:
Connection conn = qdbDataSource.getConnection();
PreparedStatement pstmt = null;
Connection conn2 = ((WLConnection)conn).getVendorConnection();
try {
CallableStatement cs = conn2.prepareCall("{ ?=call asr.bsc(?,?,?,?,?,?,?)}");
OracleCallableStatement ocs = (OracleCallableStatement)cs;
// (...)
}
Я пытался использовать родниковую шаблон JDBC, но результат был тот же.
Я использую WebLogic 10.3.2, а класс драйвера источника данных по умолчанию один. Я также использую ojdbc14.jar
в моем проекте, пул пула запуска не включает его.
Любые идеи?
EDIT: Эти подклассы класса во время выполнения оберточной:
weblogic.jdbc.wrapper.CallableStatement_oracle_jdbc_driver_OracleCallableStatementWrapper class
weblogic.jdbc.wrapper.CallableStatement class
weblogic.jdbc.wrapper.PreparedStatement class
weblogic.jdbc.wrapper.Statement class
weblogic.jdbc.wrapper.JDBCWrapperImpl class
weblogic.utils.wrapper.WrapperImpl class java.lang.Object
Что такое версия оракула и почему вам нужно его бросить !!!! я думаю, что вам это не нужно (литье), вы можете избежать этого, я имею в виду – shareef
Я использую компоненты, указанные для oracle db. Функция, которую я пытаюсь назвать, полна ее. Мне нужен Oracle CallableStatement. Я думаю, что версия оракула здесь не так важна, потому что я не получаю ошибку при попытке подключиться к ней, но получаю callablestatement. – Neron
@shareef он хочет использовать его, потому что OracleCallableStatement предлагает больше методов и является более сложным. – Sajmon