sql >> Database teknologi >  >> RDS >> Oracle

Oracle PL/SQL - Hvordan opretter man en simpel matrixvariabel?

Du kan bruge VARRAY til et array med fast størrelse:

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;

Eller TABLE for et ubegrænset array:

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

Ordet "tabel" her har intet at gøre med databasetabeller, forvirrende nok. Begge metoder opretter arrays i hukommelsen.

Med en af ​​disse skal du både initialisere og udvide samlingen, før du tilføjer elementer:

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;

Det første indeks er 1 ikke 0.



  1. Oracle 11g - Tjek begrænsning med RegEx

  2. Tjek, om MySQL-tabel eksisterer uden at bruge vælg fra syntaks?

  3. INSERT med dynamisk tabelnavn i triggerfunktion

  4. En PostgreSQL-forespørgsel med 'ANY' virker ikke