sql >> Database >  >> RDS >> Oracle

Oracle PL/SQL - Hoe maak ik een eenvoudige arrayvariabele aan?

U kunt VARRAY gebruiken voor een array van vaste grootte:

declare
   type array_t is varray(3) of varchar2(10);
   array array_t := array_t('Matt', 'Joanne', 'Robert');
begin
   for i in 1..array.count loop
       dbms_output.put_line(array(i));
   end loop;
end;

Of TABLE voor een onbegrensde array:

...
   type array_t is table of varchar2(10);
...

Het woord "tabel" heeft hier niets te maken met databasetabellen, verwarrend genoeg. Beide methoden creëren in-memory arrays.

Met een van beide moet je de verzameling initialiseren en uitbreiden voordat je elementen toevoegt:

declare
   type array_t is varray(3) of varchar2(10);
   array array_t := array_t(); -- Initialise it
begin
   for i in 1..3 loop
      array.extend(); -- Extend it
      array(i) := 'x';
   end loop;
end;

De eerste index is 1 niet 0.



  1. Hoe kan ik een dynamische WHERE-clausule maken?

  2. Fout bij gebruik van patroonovereenkomst die niet lijkt op die in PostgreSQL

  3. TAN() Voorbeelden in SQL Server

  4. Hoe de bovenste N rijen per groep te selecteren in MySQL