<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團(tuán)論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  Oracle數(shù)據(jù)庫(kù)  (http://www.hufushizhe.com/bbs/list.asp?boardid=65)
    ----  Oracle PLSQL中用pro進(jìn)行 BULK COLLECT 的高效率查詢(xún)處理  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=65&id=2506)

    --  作者:wangxinxin
    --  發(fā)布時(shí)間:2010-12-11 11:09:53
    --  Oracle PLSQL中用pro進(jìn)行 BULK COLLECT 的高效率查詢(xún)處理
    過(guò)程樣例:
    create or replace procedure real_user as
      c_count number(10);
    begin

      DECLARE
        TYPE mobile_type IS TABLE OF mobile_dabenying.mobile%TYPE;  --按表字段類(lèi)型來(lái)定義變量類(lèi)型
        t_mobile mobile_type := mobile_type();
      
      BEGIN
        select mobile BULK COLLECT  --批量選擇數(shù)據(jù)
          INTO t_mobile
          from (select mobile from mobile_dabenying order by mobile);
      
        if (t_mobile.COUNT > 0) then
          FOR i IN t_mobile.FIRST .. t_mobile.LAST LOOP
          
            select count(*)  --從號(hào)段中過(guò)濾
              into c_count
              from mobile_region
             where t_mobile(i) between start_mobile and end_mobile;
          
            if (c_count > 0) then
              c_count := 0;
              insert into mobile_dabenying2 (mobile) values (t_mobile(i));  --真實(shí)用戶(hù)
            else
              dbms_output.put_line(t_mobile(i));
              insert into mobile_dabenying3 (mobile) values (t_mobile(i));  --假用戶(hù)
            end if;
          
          END LOOP;
        end if;
      
      END;

    end;