2012-05-29 52 views
1

任何人都可以幫助我,如何將選擇查詢的結果賦值給數組變量,因爲結果可以是一個值數組。如何在plsql中指定數組變量

+0

您正在尋找的術語是:「Oracle批量收集」。搜索互聯網,你會發現很多例子。 – Rene

回答

2

有幾種不同的方法可以將數據導入數組。第一是一個簡單的循環,如下所示:

DECLARE 
    TYPE NUMBER_ARRAY IS VARRAY(100) OF NUMBER; 

    arrNums NUMBER_ARRAY; 
    i NUMBER := 1; 
BEGIN 
    arrNums := NUMBER_ARRAY(); 

    FOR aRow IN (SELECT NUMBER_FIELD 
       FROM A_TABLE 
       WHERE ROWNUM <= 100) 
    LOOP 
    arrNums.EXTEND; 
    arrNums(i) := aRow.SEQUENCE_NO; 
    i := i + 1; 
    END LOOP; 
end; 

另外,通過@Rene的建議,將使用大量收集,如下:

DECLARE 
    TYPE NUMBER_ARRAY IS VARRAY(100) OF NUMBER; 

    arrNums NUMBER_ARRAY; 
BEGIN 
    arrNums := NUMBER_ARRAY(); 
    arrNums.EXTEND(100); 

    SELECT NUMBER_FIELD 
    BULK COLLECT INTO arrNums 
    FROM A_TABLE 
    WHERE ROWNUM <= 100; 
end; 

分享和享受。