以文本方式查看主題 - 曙海教育集團論壇 (http://www.xinguifushi.cn/bbs/index.asp) -- Oracle數據庫 (http://www.xinguifushi.cn/bbs/list.asp?boardid=65) ---- Oracle PLSQL中用pro進行 BULK COLLECT 的高效率查詢處理 (http://www.xinguifushi.cn/bbs/dispbbs.asp?boardid=65&id=2506) |
-- 作者:wangxinxin -- 發布時間:2010-12-11 11:09:53 -- Oracle PLSQL中用pro進行 BULK COLLECT 的高效率查詢處理 過程樣例:
create or replace procedure real_user as c_count number(10); begin DECLARE TYPE mobile_type IS TABLE OF mobile_dabenying.mobile%TYPE; --按表字段類型來定義變量類型 t_mobile mobile_type := mobile_type(); BEGIN select mobile BULK COLLECT --批量選擇數據 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(*) --從號段中過濾 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)); --真實用戶 else dbms_output.put_line(t_mobile(i)); insert into mobile_dabenying3 (mobile) values (t_mobile(i)); --假用戶 end if; END LOOP; end if; END; end; |