2010-08-23 65 views
9

我有一些數字,我想存儲在一個數組中。我將如何聲明數組並在oracle pl/sql中爲它賦值?oracle pl/sql陣列

+0

你有不同的設置這些數字的或只有一個? – 2010-08-23 07:28:04

+0

我有號碼像1,2,5,10,100 我想存儲在一個數組[0] = 1,數組[1] = 2,..等等 數組[i]我想要訪問它像數組[我] – Andromeda 2010-08-23 07:29:55

回答

14

有在PL/SQL數組類型,但我們可以創建一個使用表

declare 
    type NumberArray is table of number index by binary_integer; 
    myArray NumberArray; 
begin 

    myArray(0) := 1 
    myArray(1) := 2 
    --or use a for loop to fill 
end; 

The explanation article

編輯自己那些:

亞當MUSCH如果我們說知道我們正在操作的數據的數據大小,我們可以使用長度固定的VARRAYs,這是oracle環境,所以下標從1開始,

另一種方法是使用VARRAY,其中數組下標從1開始,並且VARRAY的長度是固定的。

語義:

declare type VarrayType is varray(size) of ElementType; 

例子:

declare 
     type NumberVarray is varray(100) of NUMERIC(10); 
     myArray NumberVarray; 
    BEGIN 
     myArray := NumberVarray(1,10,100,1000,10000); 

     myArray(1) = 2; 

     for i in myArray.first..myArray.last 
     loop 
     dbms_output.put_line('myArray(' || i || '): ' || myArray(i)); 
     end loop; 
    end; 
END; 

輸出:

myArray(1) : 2 
myArray(2) : 10 
myArray(3) : 100 
myArray(4) : 1000 
myArray(5) : 10000 
+1

PL/SQL中有一個ARRAY類型;它被稱爲VARRAY,它是一個具有固定上限元素的1索引數組。你使用的是一個關聯數組,它更像是Java HashMap,其中BINARY_INTEGER是關鍵字,NUMBER是數值。 – 2010-08-23 14:13:05