sql >> Databasteknik >  >> RDS >> Oracle

Oracle PL/SQL - Hur skapar man en enkel arrayvariabel?

Du kan använda VARRAY för en matris med fast storlek:

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 för en obegränsad array:

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

Ordet "tabell" här har ingenting att göra med databastabeller, förvirrande nog. Båda metoderna skapar arrayer i minnet.

Med någon av dessa måste du både initiera och utöka samlingen innan du lägger till element:

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örsta indexet är 1 inte 0.



  1. Hur kan jag trunkera en datetime i SQL Server?

  2. Knee-Jerk Performance Tuning:Lägg bara till en SSD

  3. Använda Spotlight Cloud för att lösa blockering av SQL Server

  4. LISTAGG i Oracle för att returnera distinkta värden