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

Hvordan bruger man en tabeltype i en SELECT FROM-sætning?

I SQL må du kun bruge tabeltype, som er defineret på skemaniveau (ikke på pakke- eller procedureniveau), og indeks-for-tabel (associativ array) kan ikke defineres på skemaniveau. Så - du skal definere indlejret tabel som denne

create type exch_row as object (
    currency_cd VARCHAR2(9),
    exch_rt_eur NUMBER,
    exch_rt_usd NUMBER);

create type exch_tbl as table of exch_row;

Og så kan du bruge det i SQL med TABLE-operator, for eksempel:

declare
   l_row     exch_row;
   exch_rt   exch_tbl;
begin
   l_row := exch_row('PLN', 100, 100);
   exch_rt  := exch_tbl(l_row);

   for r in (select i.*
               from item i, TABLE(exch_rt) rt
              where i.currency = rt.currency_cd) loop
      -- your code here
   end loop;
end;
/


  1. Faldgruber, der skal undgås, når du bruger den nye Microsoft SSMA version 7.8

  2. Syntetisk datagenerering

  3. Hvordan afkodes PostgreSQL bytea kolonne hex til int16/uint16 i r?

  4. Vil SQL-opdatering påvirke dens underforespørgsel under opdateringskørsel?