views:

47

answers:

1

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??

+2  A: 

There are array type in PL/SQL but we can create ourself 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

EDIT:

or as Adam Musch sad if we know the data size of data that we are operate we can use VARRAYs that are lenght fixed, this is Oracle environment so the 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
Vash
There is an ARRAY type in PL/SQL; it's called a VARRAY, which is a 1-indexed array with a fixed upper bound of elements. What you're using is an associative array, which is more like a Java HashMap, where the BINARY_INTEGER is the key and the NUMBER is the value.
Adam Musch