2
我需要執行這個SQL代碼:的Java JDBC EXEC程序
exec ais_disp.p_lk.p_add_client
(v_sis_id => 1640,
v_proc_id => 1,
v_time_start => to_date('01032013 00:00','ddmmyyyy hh24:mi'),
v_time_end => to_date('31032013 23:59','ddmmyyyy hh24:mi'));
select * from ais_disp.v_lk_1;
commit;
,並從該查詢ResultList。
我試圖做這樣的:
CallableStatement stmt = connection.prepareCall("{call ais_disp.p_lk.p_add_client " +
"(1640,
1,
to_date('01032013 00:00','ddmmyyyy hh24:mi'),
to_date('31032013 23:59','ddmmyyyy hh24:mi'))}");
stmt.execute();
ResultSet rs2 = stmt.executeQuery("select * from ais_disp.v_lk_1");
System.out.println(rs2);
while (rs2.next()){
System.out.println(rs2.getString("LRP_STATUS_NAME"));
}
stmt.close();
但它返回空ResultSet
。我做錯了什麼? 數據庫是Oracle數據庫。
UPDATE:
我已經加入這個字符串代碼之前stmt.executeQuery("select * from ais_disp.v_lk_1")
:
stmt.execute();
但它仍然不返回行。 也許我需要在可調用語句中以某種方式添加select語句。那麼該怎麼做呢?
你的第一個'to_date()'調用指定了一個不正確的格式掩碼(在'hh24'之前缺少空格)。因爲存儲過程不返回結果集,所以你應該使用'execute()'而不是'executeQuery()' - 實際上我期望你的第一個'executeQuery()'(運行存儲過程)拋出一個異常。 –