循环更新几十张表的存储过程

 

 1 None.gif create   or   replace   procedure  upstat(tablename    in   varchar2 ,
 2 None.gif                                   orderservid  in   varchar2 ,
 3 None.gif                                   table_num    in   number ,
 4 None.gif                                   status       in   number is
 5 None.gif  i           number ( 4 0 );
 6 None.gif  smstable    varchar2 ( 32 );
 7 None.gif  update_sql  varchar2 ( 500 );
 8 None.gif begin
 9 None.gif  i : =   0 ;
10 None.gif   while  i  <  table_num loop
11 None.gif     if  (i  >=   10 then
12 None.gif      smstable : =   ' SMS_USER_0 '   ||  to_char(i);
13 None.gif     else
14 None.gif      smstable : =   ' SMS_USER_00 '   ||  to_char(i);
15 None.gif     end   if ;
16 None.gif    update_sql : =   ' update  '   ||  smstable  ||   '  t set t.status= '   ||  status  ||   '
17 None.gif                  where t.orderservid= '''   ||  orderservid  ||
18 None.gif                   '''  and exists (select  '' x ''  from  '   ||  tablename  ||
19 None.gif                   '  b where b.ms = t.mobileno) ' ;
20 None.gif    DBMS_OUTPUT.put_line(update_sql);
21 None.gif     -- execute immediate update_sql;
22 None.gif      commit ;
23 None.gif    i : =  i  +   1 ;
24 None.gif   end  loop;
25 None.gif end  upstat;

转载于:https://www.cnblogs.com/ppyyr/archive/2006/08/18/480238.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值