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

Jalankan Untuk Setiap Tabel di PLSQL

declare 
  cnt number;
begin
  for r in (select owner, table_name from all_tables
             where upper(table_name) like ('%MSRS%')) loop

    execute immediate 'select count(*) from "'
            || r.owner || '"."'
            || r.table_name || '"'
            into cnt;

    dbms_output.put_line(r.owner || '.' || r.table_name || ': ' || cnt);
  end loop;
end;
/

Jika Anda memilih dari all_tables Anda tidak dapat mengandalkan pemberian hibah yang diperlukan untuk memilih dari nama tabel. Karena itu Anda harus memeriksa ORA-00942: table or view does not exist kesalahan dilemparkan.

Mengenai penyebab kesalahan Anda:Anda mendapatkan kesalahan ini karena pernyataan pilih mengembalikan kumpulan hasil dengan lebih dari satu baris (satu untuk setiap tabel) dan Anda tidak dapat menetapkan kumpulan hasil tersebut ke varchar2.

Omong-omong, pastikan Anda mengaktifkan dbms_output dengan SET SERVEROUT ON sebelum mengeksekusi blok ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Proses peningkatan langkah demi langkah untuk R12.2 Upgrade Bagian -4 (Menerapkan Paket Pembaruan Rilis 12.2.x)

  2. Batasan unik Oracle dan indeks unik

  3. Perbarui hanya tanggal pada bidang datetime di Pl/SQL

  4. ORA-30076:bidang ekstrak tidak valid untuk sumber ekstrak

  5. Mengatur zona waktu sesi dengan spring jdbc Oracle