2014-10-29 86 views
0

我有這樣的事情,但得到一個錯誤說ORA-06533:下標超出計數。我想在輸出標籤中看到「select distinct」語句中的所有值。任何人都可以幫忙謝謝!如何使用dbms_output顯示分配給變量的值數組?

DECLARE 
    TYPE v_chks_array IS VARRAY (10) OF VARCHAR2 (50); 

    arrSRCs v_chks_array; 
BEGIN 
    arrSRCs := v_chks_array(); 
    arrSRCs.EXTEND (10); 

    SELECT /*+parallel (a,4)*/ 
     DISTINCT a.src_table 
    BULK COLLECT INTO arrSRCs 
    FROM hcr_dm.hcr_dm_fact a; 

    DBMS_OUTPUT.put_line (arrSRCs (10)); 
END; 
+1

是否已確認有不超過10行中HCR_DM.HCR_DM_FACT? – 2014-10-29 18:37:00

+0

該表有數百萬行。 「選擇」結果可以有0到10條記錄,並且有可能會有更多。 – gcbm1984 2014-10-29 20:51:49

+0

HCR_DR.HCR_DM_FACT上有索引嗎? – 2014-10-29 21:35:23

回答

1

集合發現這裏沒有必要:

begin 
    for results in 
    (
     select /*+ parallel (a,4) */ distinct a.src_table 
     from hcr_dm.hcr_dm_fact a; 
    ) loop 
     dbms_output.put_line(results.src_table); 
    end loop; 
end; 
/