sql >> Databáze >  >> RDS >> Oracle

Postup aktualizace tabulky, která je již naplněna

Je to proto, že objekt znovu vytváříte. Musíte předat instanciovanou verzi objektu do procedury jako parametr:

create or replace procedure add_n_rows(
    Pn_rows in number
  , P_tab in out t_tf_tab ) is

begin
  for i in P_tab.count .. P_tab.count + Pn_rows
   loop
     P_tab.extend;
     P_tab(l_tab.last) := t_tf_row(i, 'Description for '|| i);    
   end loop;
end;

Deklaroval jsem P_tab jako parametr OUT to znamená, že jej můžete změnit. Pokud to nechcete udělat, odstraňte "out" a deklarujte lokální proměnnou typu t_tf_tab , kterou pak můžete změnit.

Poté jej můžete volat samostatně, například:

declare
   l_tab t_tf_tab := t_tf_tab();
begin
   l_tab.extend;
   l_tab(l_tab.last) := t_tf_row(1. 'Hello');
   add_n_rows(3, l_tab);
end;



  1. Jak se efektivně připojíte k mysql v php bez opětovného připojení při každém dotazu

  2. Ovladač QMYSQL je k dispozici, ale není načten

  3. Jedinečné omezení, které kontroluje dva sloupce v MySQL

  4. Proč nemohu odinstalovat mysql-5.5 a nainstalovat mysql-5.6 na stroji Amazon Linux?