Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Prosedur untuk memperbarui tabel yang sudah terisi

Ini karena Anda membuat ulang objek. Anda harus meneruskan versi objek yang dipakai ke dalam prosedur sebagai parameter:

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;

Saya telah mendeklarasikan P_tab sebagai parameter OUT, ini berarti Anda dapat mengubahnya. Jika Anda tidak ingin melakukan ini, hapus "keluar" dan deklarasikan variabel lokal dengan tipe t_tf_tab , yang kemudian dapat Anda ubah.

Anda kemudian dapat memanggilnya secara terpisah, misalnya:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Addnode resolv.conf Kegagalan

  2. Menemukan kueri dari Oracle yang memblokir sesi

  3. Melewati BLOB besar ke Stored Procedure

  4. Cara membuat tautan DB antara dua instance Oracle

  5. _gc_fusion_compression