2010-08-23 6 views
9

J'ai quelques nombres que je veux stocker dans un tableau. comment vais-je déclarer tableau et lui attribuer une valeur dans oracle pl/sql ??oracle pl/sql arrays

+0

Avez-vous des ensembles différents de ces chiffres ou un seul? –

+0

j'ai numéro comme 1,2,5,10,100 je veux le stocker dans un tableau comme tableau [0] = 1, array [1] = 2, ..etc afterall je veux l'accéder comme tableau [i ] – Andromeda

Répondre

14

Il y a le type de tableau dans PL/SQL, mais nous pouvons créer les mêmes en utilisant la 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:

ou Adam Musch a dit que si nous connaître la taille des données de données, que nous opérons, nous pouvons utiliser VARRAYs qui sont la longueur fixe, c'est oracle environnement, donc les indices commencent à partir de 1,

L'alternative utilise VARRAY, où l'indice de tableau commence à partir de 1 et la longueur de VARRAYs est fixée.

sémantique:

declare type VarrayType is varray(size) of ElementType; 

Exemple:

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; 

Sortie:

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

Il existe un type ARRAY dans PL/SQL; c'est ce qu'on appelle un VARRAY, qui est un tableau 1 indexé avec une limite supérieure fixe d'éléments. Ce que vous utilisez est un tableau associatif, qui ressemble plus à un Java HashMap, où BINARY_INTEGER est la clé et le nombre est la valeur. –