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

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

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

    夢(mèng)幻之旅

    DEBUG - 天道酬勤

       :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 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需要大量?jī)?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 的另一種寫(xiě)法:
    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;
        
        
    -- 跳過(guò)集合中的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 閱讀(1898) 評(píng)論(0)  編輯  收藏 所屬分類: DataBase
    主站蜘蛛池模板: 亚洲激情视频在线观看| 日本免费中文字幕| 亚洲噜噜噜噜噜影院在线播放 | 日日噜噜噜噜夜夜爽亚洲精品| 国产免费丝袜调教视频| 国产精品网站在线观看免费传媒| 免费观看四虎精品成人| 亚洲中文字幕无码一去台湾| 久久精品a亚洲国产v高清不卡| 国产亚洲情侣一区二区无| 又爽又黄无遮挡高清免费视频| 成年人在线免费看视频| 日本高清在线免费| 久久国产免费观看精品| 久久99久久成人免费播放| 日韩在线观看视频免费| 国产精品亚洲一区二区三区 | 一二三四免费观看在线视频中文版| 久久精品免费一区二区三区| 岛国岛国免费V片在线观看 | 成人国产精品免费视频| 色噜噜的亚洲男人的天堂| 亚洲综合小说另类图片动图| 亚洲一级毛片免费观看| 亚洲成电影在线观看青青| 日韩精品亚洲人成在线观看| 亚洲国产无套无码av电影| 亚洲日本va中文字幕久久| 久久久久亚洲精品天堂久久久久久| 四虎成人精品在永久免费| 四虎影视精品永久免费| 国产一级淫片a免费播放口之| 成人永久免费高清| 免费国产美女爽到喷出水来视频| 日本免费的一级v一片| 国产精品久久香蕉免费播放| 在线观看亚洲免费视频| 国产成人在线免费观看| 在线a亚洲v天堂网2018| 亚洲精品无码日韩国产不卡?V| 亚洲成人影院在线观看|