读书人

菜鸟请问 in 查询有关问题

发布时间: 2012-01-12 22:11:58 作者: rapoo

初学者请教 in 查询问题
select * from table1 where myid in(1,2,3)这个可行。

现在有一个存储过程需要调用这个语句,myprodure(name vachar2,idlist varchar2),我调用该存储过程时候该怎样传这个idlist参数呢?
因为这样很明显是不行的:
exec myprocedure( 'myname ', '1,2,3 ');
我的myid字段是number的序列,有什么简单的办法调用这个存储过程么?

[解决办法]
myprodure( 'myname ', 'select * from table1 where myid in(1,2,3) ')
不知道你具体的需求,根据我的理解
[解决办法]
SQL> create or replace procedure myprocdure(name varchar2,idlist varchar2) as
2 TSQL VARCHAR(100);
3 begin
4 TSQL:= 'SELECT * FROM TABLE1 WHERE MYID IN ( ' || idlist || ') ';
5 execute immediate TSQL;
6 end;
7 /

过程已创建。

SQL> exec myprocdure( 'myname ', '56,35,725 ');

PL/SQL 过程已成功完成。

SQL>

读书人网 >oracle

热点推荐