Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle PL/SQL - Wie erstelle ich eine einfache Array-Variable?

Sie können VARRAY für ein Array fester Größe verwenden:

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;

Oder TABLE für ein unbegrenztes Array:

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

Das Wort "Tabelle" hat hier verwirrenderweise nichts mit Datenbanktabellen zu tun. Beide Methoden erstellen In-Memory-Arrays.

Bei beiden müssen Sie die Sammlung initialisieren und erweitern, bevor Sie Elemente hinzufügen:

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;

Der erste Index ist 1, nicht 0.