sql >> Database >  >> RDS >> Oracle

Hoe gebruik je een tabeltype in een SELECT FROM-instructie?

In SQL mag u alleen het tabeltype gebruiken dat op schemaniveau is gedefinieerd (niet op pakket- of procedureniveau), en index-by-tabel (associatieve array) kan niet op schemaniveau worden gedefinieerd. Dus - u moet een geneste tabel als volgt definiëren

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;

En dan kun je het in SQL gebruiken met de TABLE-operator, bijvoorbeeld:

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. Er is een fout opgetreden tijdens het installeren van pg (0.17.1), en Bundler kan niet doorgaan

  2. Hoe verbinding maken met MS SQL Server met behulp van Inno Setup?

  3. Inleiding tot automatisch schalen van Amazon Web Services (AWS)

  4. Hoe te updaten/verwijderen met elementen uit twee verschillende tabellen SQLite