<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效率高,因為前者只切換一次上下文,而后者將是在循環(huán)次數(shù)一樣多個上下文間切換。
    2.使用BLUK COLLECT一次取出一個數(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毛片| 99久久免费国产特黄| 2020久久精品国产免费| 亚洲人成网站在线播放影院在线| 国产一级a毛一级a看免费人娇| 亚洲中文字幕久久精品无码喷水| 国产99久久久久久免费看| 亚洲一区日韩高清中文字幕亚洲| 成人精品综合免费视频| 亚洲人JIZZ日本人| 99热这里只有精品6免费| 亚洲成a人片在线观看中文!!!| 国产精品入口麻豆免费观看| 在线观看亚洲AV日韩AV| 国产一级高清视频免费看| 搜日本一区二区三区免费高清视频| 国产成人亚洲精品狼色在线| 一级毛片免费观看不卡的| 亚洲国产精品免费在线观看| 日韩高清免费观看| 精品久久久久久无码免费| 久久久久亚洲AV无码永不| 成人免费在线观看网站| 成人免费视频一区二区| 亚洲av网址在线观看| 在线视频观看免费视频18| 免费人成再在线观看网站 | 亚洲伊人久久精品| 午夜dj免费在线观看| 国产精品hd免费观看| 久久精品国产亚洲77777| 女人18毛片水最多免费观看| 久香草视频在线观看免费| 亚洲色欲色欲综合网站| 午夜dj免费在线观看| 日本人成在线视频免费播放| 亚洲日韩国产欧美一区二区三区| 国产亚洲精品高清在线| 99久久这里只精品国产免费| 一区二区三区在线观看免费| 91亚洲精品自在在线观看|