Java JDBC exec程序

时间:2013-05-20 13:35:28

标签: java oracle jdbc

我需要执行这个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语句。那怎么办呢?

1 个答案:

答案 0 :(得分:3)

似乎您的CallableStatement从未执行过,请先执行存储过程:

ResultSet rs = stmt.executeQuery()

您的代码执行选择查询而不是存储过程,而select语句不返回任何行。