我有一些我想存储在数组中的数字。我将如何在 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;
The explanation article
编辑 :
或者正如 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
关于arrays - oracle pl/sql 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545379/