配列に格納したい番号がいくつかあります。 Oracle pl/sqlで配列を宣言し、それに値を割り当てるにはどうすればよいですか?
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;
[〜#〜]編集[〜#〜]:
またはAdam 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