У меня есть несколько чисел, которые я хочу сохранить в массиве. как объявить массив и присвоить ему значение в 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;
РЕДАКТИРОВАТЬ :
или как Адам Муш сказал, если мы знать размер данных, с которыми мы работаем, мы можем использовать VARRAY
с фиксированной длиной, это среда 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