首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

菜鸟请问 in 查询有关问题

2012-01-12 
初学者请教 in 查询问题select*fromtable1wheremyidin(1,2,3)这个可行。现在有一个存储过程需要调用这个语

初学者请教 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>

热点排行