<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    FORALL與BULK COLLECT的使用方法:
    1.使用FORALL比FOR效率高,因?yàn)榍罢咧磺袚Q一次上下文,而后者將是在循環(huán)次數(shù)一樣多個(gè)上下文間切換。
    2.使用BLUK COLLECT一次取出一個(gè)數(shù)據(jù)集合,比用游標(biāo)條取數(shù)據(jù)效率高,尤其是在網(wǎng)絡(luò)不大好的情況下。但BLUK COLLECT需要大量內(nèi)存。

    1).在select into 中使用 forall bulk collect;
    create table test_forall ( user_id number(10), user_name varchar2(20)); 
    SELECT * FROM ex_edm_esp; 
    SELECT * FROM test_forall;
    DECLARE
        TYPE forall_table 
    IS TABLE OF test_forall%ROWTYPE;
        test_table forall_table;
    BEGIN
        
    SELECT ID,esp_name BULK COLLECT INTO test_table FROM ex_edm_esp;
        FORALL idx 
    IN test_table.first..test_table.last
               
    INSERT INTO test_forall VALUES test_table(idx);
        
    COMMIT;
    EXCEPTION
      
    WHEN OTHERS THEN
        
    ROLLBACK;
    END;

    for all 的另一種寫法:
    FORALL idx IN VALUE OF test table

    2).在fetch into中使用 forall, indices of, bulk collect;
    DECLARE
        TYPE forall_table 
    IS TABLE OF test_forall%ROWTYPE;
        test_table forall_table;
        
    CURSOR test_cur IS SELECT ID,esp_name FROM ex_edm_esp;
    BEGIN
        
    OPEN test_cur;
        
    FETCH test_cur BULK COLLECT INTO test_table;
        
    CLOSE test_cur;
        
        
    -- 跳過集合中的null元素
        FORALL idx IN INDICES OF test_table
               
    INSERT INTO test_forall VALUES test_table(idx);
        
    COMMIT;
    EXCEPTION
      
    WHEN OTHERS THEN
        
    ROLLBACK;
    END;

    3).在returning into 之中使用 forall in, value of, bulk collect;
    DECLARE
        TYPE t_user_id 
    IS TABLE OF test_forall.user_id%TYPE;
        t1 t_user_id;
        TYPE t_user_name 
    IS TABLE OF test_forall.user_name%TYPE;
        t2 t_user_name;
    BEGIN
        
    DELETE FROM test_forall RETURNING user_iduser_name BULK COLLECT INTO t1,t2;
        
    FOR i IN t1.first..t1.last
          LOOP
            dbms_output.put_line(t1(i));
            dbms_output.put_line(t2(i));
          
    END LOOP;
        
    ROLLBACK;
    EXCEPTION
      
    WHEN OTHERS THEN
        
    ROLLBACK;
    END;



    posted on 2011-07-13 11:19 HUIKK 閱讀(1908) 評論(0)  編輯  收藏 所屬分類: DataBase
    主站蜘蛛池模板: 亚洲视频在线一区二区| 亚洲国产高清视频在线观看| 亚洲精品理论电影在线观看| 久久免费看黄a级毛片| 99ri精品国产亚洲| 91香焦国产线观看看免费| 亚洲国产成人片在线观看| 日本免费中文视频| 亚洲人成亚洲精品| 30岁的女人韩剧免费观看| 亚洲系列中文字幕| 国产免费不卡v片在线观看| 精品国产成人亚洲午夜福利| 免费观看美女裸体网站| 欧美日韩亚洲精品| 久久精品亚洲综合一品| 久久精品免费电影| 亚洲大尺码专区影院| 免费无码AV电影在线观看| 亚洲人成色4444在线观看| 国产hs免费高清在线观看| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲福利在线播放| 岛国岛国免费V片在线观看| 亚洲av日韩av激情亚洲| 2020久久精品国产免费| 亚洲国产成人久久精品大牛影视| 免费在线观看毛片| 久久精品私人影院免费看| 国产婷婷综合丁香亚洲欧洲| 国产在线19禁免费观看| 大地资源在线资源免费观看 | 国产亚洲精品高清在线| 久久狠狠躁免费观看| 香蕉大伊亚洲人在线观看| 亚洲欧洲国产成人综合在线观看| 国产精品免费无遮挡无码永久视频 | 亚洲AV永久无码精品放毛片| 浮力影院亚洲国产第一页| 最近中文字幕大全免费视频| 久久亚洲欧美国产精品|