0Day Forums
oracle pl/sql arrays - Printable Version

+- 0Day Forums (https://0day.red)
+-- Forum: Coding (https://0day.red/Forum-Coding)
+--- Forum: Database (https://0day.red/Forum-Database)
+---- Forum: Oracle (https://0day.red/Forum-Oracle)
+---- Thread: oracle pl/sql arrays (/Thread-oracle-pl-sql-arrays)



oracle pl/sql arrays - shivery641690 - 07-31-2023

i have some numbers which i want to store in an array. how will i declare array and assign value to it in oracle pl/sql??


RE: oracle pl/sql arrays - mellifluently136227 - 07-31-2023

There are array type in PL/SQL but we can create those ourselves using the table

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][1]


**EDIT** :

or as *Adam Musch* said if we know the data size of data, that we are operating on, we can use `VARRAYs` that are length fixed, this is `oracle` environment, so subscripts start from `1`,

Alternative is using `VARRAY`, where array subscript starts from 1 and the length of VARRAYs is fixed.

Semantic:

declare type VarrayType is varray(size) of ElementType;

Example :

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;

Output :

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




[1]:http://www.devshed.com/c/a/Oracle/Associative-Arrays-in-Oracle-PLSQL-Introduction/