1. 程式人生 > 其它 >Java使用jdbcTemplate呼叫Oracle儲存過程和程式包

Java使用jdbcTemplate呼叫Oracle儲存過程和程式包

/**
* 測試程式碼,呼叫有返回值的儲存過程
*/

public void procedureTest() throws ServiceBusException {
String sql = "{call testPackage.proceduret(?, ?)}"; //一個入參,一個出參

String message = (String) jdbcTemplate.execute(sql, new CallableStatementCallback<Object>() {
public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
cs.setString(1, "code");
cs.registerOutParameter(2, Types.VARCHAR);
cs.execute();
return StringUtil.concat("程式包返回資訊:", cs.getString(2));// 獲取輸出引數的值
}
});
logger.debug(message);
}

/**
* 測試程式碼,呼叫有返回值的程式包
*/
public void packageTest() throws ServiceBusException {
String sql = "{? = call TEST_PKG.of_stop_clinic_dict(?, ?)}"; //一個返回值,一個入參,一個出參

String message = (String) jdbcTemplate.execute(sql, new CallableStatementCallback<Object>() {
public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
cs.registerOutParameter(1, java.sql.Types.VARCHAR);
cs.setString(2, "code");
cs.registerOutParameter(3, Types.VARCHAR);
cs.execute();
return StringUtil.concat("程式包返回資訊:", cs.getString(1), "/", cs.getString(3));// 獲取輸出引數的值
}
});
logger.debug(message);
}