日期:2014-05-16  浏览次数:20994 次

oracle10中sql传参数难题,求解。
查询语句:select * from table_name where id='1'; 在jdbc中我们可以这样查询

String sql = "select * from table_name where id=?";
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, "1");
ps.executeQuery();

在存储过程中可以这么用

create or replace procedure(vId in char) as
   .... 
    begin 
    ....
      select name into ..from table_name where id=vId;
    ....
    end;

通过 ‘?’占位符传参数。
但是这样id的值只能有一个。如果我想批量查询,如:select * from table_name where id in ('1','2','3'.....);就是in里的数据个数不固定。在jdbc中该如何使用?
在存储过程中又怎么传递参数呢?(不要拼接字符串)求指点.

------解决方案--------------------
自己先顶个,求高手们指点迷津。
------解决方案--------------------
 传游标  就OK了   
------解决方案--------------------
你传进来的参数应该是一个逗号分隔的字符串,如:
v_ids='1,2,3';
如果表的数据量小,可以直接用LIKE查询:
select * from table_name where ','