去掉del存储过程

create or replace procedure ttttt is
  rs         SYS_REFCURSOR;
  isRepart   number;
  tempUserId number;
  V_username varchar2(1000);
  i          number;

begin
  i        := 0;
  isRepart := 0;
  open rs for
    select s.userid
      from xtgl_superusers s
     where s.username like '%del%'
       and s.islock = 0;

  loop
    fetch rs
      into tempUserId;
    exit when rs%Notfound;
 
    select substr(s.username, 1, instr(s.username, 'del', 1, 1) - 1)
      into V_username
      from xtgl_superusers s
     where s.userid = tempUserId;
    dbms_output.put_line(V_username);
 
    select count(1)
      into isRepart
      from xtgl_superusers x
     where x.username = V_username;
    dbms_output.put_line('isRepart' || isRepart);
    if isRepart = 1 then
      update xtgl_superusers s
         set s.islock = 1
       where s.userid = tempUserId;
    end if;
    if isRepart = 0 then
      update xtgl_superusers s
         set s.username = substr(s.username,
                                 1,
                                 instr(s.username, 'del', 1, 1) - 1)
       where s.userid = tempUserId;
    end if;
 
    i := i + 1;
  end loop;

  dbms_output.put_line(i);
end ttttt;

posted @ 2012-09-03 14:08  听温柔的曲  阅读(111)  评论(1)    收藏  举报