我需要执行以下 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();
但它仍然没有返回任何行。 也许我需要在可调用语句中添加某种选择语句。那么该怎么做呢?
最佳答案
似乎您的CallableStatement
从未执行过,请先执行您的存储过程:
ResultSet rs = stmt.executeQuery()
您的代码执行选择查询而不是存储过程,并且选择语句不返回任何行。
关于Java JDBC 执行过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16650754/