我需要执行这个SQL代码:
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数据库。
更新:
我已将此字符串添加到stmt.executeQuery("select * from ais_disp.v_lk_1")
之前的代码中:
stmt.execute();
但它仍然没有返回任何行。 也许我需要在可调用语句中添加一些select语句。那怎么办呢?
答案 0 :(得分:3)
似乎您的CallableStatement
从未执行过,请先执行存储过程:
ResultSet rs = stmt.executeQuery()
您的代码执行选择查询而不是存储过程,而select语句不返回任何行。