• 对多个有规律表进行更新剔重复操作的存储过程(up8000)create or replace procedure up8000(table_num in numberis
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  i          
    number(40) := 0;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  j          
    number(30) := 1;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  smstable   
    varchar2(32);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  update_sql 
    varchar2(1000);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  
    --TYPE temp_array IS ARRAY(20) OF VARCHAR2(500); --假设最多有20个元素
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
      type temp_array is table of varchar2(1000);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  temparray temp_array;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
    begin
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  temparray :
    = temp_array();
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  temparray.Extend(
    4); --下面有几条这里就为几
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
      while i < table_num loop
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    if (i >= 10then
    对多个有规律表进行更新剔重复操作的存储过程(up8000)      smstable :
    = 'SMS_USER_' || to_char(i);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    else
    对多个有规律表进行更新剔重复操作的存储过程(up8000)      smstable :
    = 'SMS_USER_0' || to_char(i);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    end if;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    --Extend()中添的数量  
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
        temparray(1) := 'update ' || smstable ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    
    ' t set t.orderservid=''KX'' where t.orderservid=''XH'' or t.orderservid=''TYWJ'' or t.orderservid=''XYYM'' or t.orderservid=''XHY'' or t.orderservid=''TNFB'' or t.orderservid=''ZRBD'' or t.orderservid=''SKL'' or t.orderservid=''CM'' or t.orderservid=''CS'' or t.orderservid=''MGCD''';
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    temparray(
    2) := 'update ' || smstable ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    
    ' t set t.orderservid=''JS'' where t.orderservid=''SHBK'' or t.orderservid=''XCWH'' or t.orderservid=''JCCP'' or t.orderservid=''BDCX''';
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    temparray(
    3) := 'update ' || smstable ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    
    ' a set a.orderservid=''BF''
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                     where exists (select 
    '' x'' from ' ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    smstable 
    ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    
    ' b where a.mobileno=b.mobileno and a.orderservid=b.orderservid and a.rowid<b.rowid)';
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    temparray(
    4) := 'update ' || smstable ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    
    ' a set a.orderservid=''BF''
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                     where exists (select 
    '' x'' from ' ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    smstable 
    ||
    对多个有规律表进行更新剔重复操作的存储过程(up8000)                    
    ' b where a.mobileno=b.mobileno and a.orderservid=b.orderservid and a.rowid<b.rowid)';
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    for j in 1 .. temparray.count loop
    对多个有规律表进行更新剔重复操作的存储过程(up8000)      update_sql :
    = temparray(j);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)      
    --DBMS_OUTPUT.put_line(update_sql);
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
          execute immediate update_sql;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    end loop;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    
    commit;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)    i :
    = i + 1;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)  
    end loop;
    对多个有规律表进行更新剔重复操作的存储过程(up8000)
    end up8000;

相关文章: