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

Bagaimana cara menghapus daftar tabel dari skema di Oracle?

Gunakan SQL dinamis untuk keluar dari kamus data.

begin
     for trec in ( select table_name
                   from user_tables
                   where table_name like 'PREFIX\_%' escape `\' )
     loop
         dbms_output.put_line('dropping table ' || trec.table_name);
         execute immediate 'drop table '||trec.table_name;
     end loop;
end;

Sebaiknya tepat dengan klausa LIKE; menggunakan escape kata kunci untuk memastikan garis bawah tidak diperlakukan sebagai karakter pengganti. Atau gunakan substr(table_name, 1, 7) = 'PREFIX_' .

Menjatuhkan tabel yang salah bukanlah bencana asalkan Anda bekerja pada 10g atau lebih baru dan RECYCLE BIN diaktifkan , tapi tetap lebih baik tidak. Jelas Anda tidak akan menjalankan kode seperti ini di Produksi, tetapi Anda akan menggunakan prinsip untuk menghasilkan skrip pernyataan drop.

Kode di atas tidak menangani dependensi. Jika Anda memiliki kunci asing yang mereferensikan tabel awalan dan Anda ingin memaksa menjatuhkan tabel, gunakan logika tambahan ini:

     execute immediate 'drop table '|| trec.table_name ||' cascade constraint';

Ini menghilangkan batasan kunci asing tetapi meninggalkan tabel dependen (sebelumnya).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara mengubah batasan pemeriksaan yang ada?

  2. Parsing SOAP XML di Oracle dengan contoh

  3. Cara menanyakan kolom CLOB di Oracle

  4. Ekstrak Oracle dari nilai pemotongan xml

  5. Cara Mengembalikan Stempel Waktu Unix di Oracle