jdbctemplate呼叫儲存過程傳遞陣列引數
1.java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot cast to oracle.jdbc.connection
2.無效的列名稱型別
[@more@]第一個錯誤的解決分為兩步:先把從jndi獲取的資料來源的connection轉換為nativeConnection,轉換的方法是:
con = con.getMetaData().getConnection();
然後把專案web/WEB-INF/lib/下的ojdbc14.jar刪除,用web容器裡的ojdbc14.jar,否則會報第一個錯誤
第二個錯誤解決:
先建立type
create type type_test as table of number;
完整呼叫方法:
this.getJdbcTemplate().execute(new CallableStatementCreator(){
@Override
public CallableStatement createCallableStatement(Connection con) throws SQLException {
String execuSql = "{call PKG_TEST.LIST_TEST(?)}";
CallableStatement cs = con.prepareCall(execuSql);
Object[] obj = new Object[5];
obj[0] = 0;
obj[1] = 1;
obj[2] = 2;
obj[3] = 3;
obj[4] = 4;
con = con.getMetaData().getConnection();
ArrayDescriptor desc = ArrayDescriptor.createDescriptor("TYPE_TEST",con);
ARRAY array = new ARRAY(desc,con,obj);
cs.setArray(1,array);
return cs;
}
},new CallableStatementCallback
@Override
public String doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
cs.execute();
return "SUCCESS";
}
});
參考:
http://www.devx.me/java/the-method-for-passing-arrays-para-to-oracle.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25261409/viewspace-1058443/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在遠端和本地儲存過程間傳遞陣列儲存過程陣列
- 在遠端和本地儲存過程間傳遞陣列[zt]儲存過程陣列
- go 如何呼叫 sqlserver 帶傳出引數的儲存過程GoSQLServer儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- 給SQL Server儲存過程,傳送陣列引數的變通辦法SQLServer儲存過程陣列
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- Java呼叫儲存過程(帶輸出引數)Java儲存過程
- 動態呼叫帶引數的儲存過程儲存過程
- dos下呼叫帶輸出引數的儲存過程儲存過程
- oracle儲存過程中的陣列Oracle儲存過程陣列
- 呼叫儲存過程儲存過程
- c++ -- 二維陣列引數傳遞C++陣列
- Shell自學二(引數傳遞和陣列)陣列
- mysql儲存過程的引數MySql儲存過程
- java呼叫oracle儲存過程的自定義型別(可變陣列)JavaOracle儲存過程型別陣列
- Winform呼叫儲存過程ORM儲存過程
- perl呼叫儲存過程儲存過程
- jdbc呼叫儲存過程JDBC儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 帶輸出引數的儲存過程儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- PB中呼叫儲存過程儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- php呼叫mssql儲存過程PHPSQL儲存過程
- java中呼叫儲存過程Java儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 儲存過程 傳 datatable儲存過程
- ABAP 方法呼叫的引數傳遞裡,透過引用傳遞的方式,能修改原始引數值嗎?
- MySQL 儲存過程引數IN OUT INOUT對比MySql儲存過程
- oracle儲存過程將引數字串分割sqlOracle儲存過程字串SQL
- jsp中呼叫儲存過程JS儲存過程
- Spring mybatis 呼叫儲存過程SpringMyBatis儲存過程
- 用PHP呼叫MySQL儲存過程PHPMySql儲存過程
- c / c + + 呼叫mysql儲存過程MySql儲存過程
- C#呼叫 oracle儲存過程C#Oracle儲存過程
- C#呼叫Oracle儲存過程C#Oracle儲存過程
- 動態呼叫儲存過程 sample:儲存過程