Pangkalan data Oracle: JIKA WUJUD struktur
Oracle menyediakan mekanisme untuk menyemak kewujudan jadual sebelum melakukan sebarang operasi (seperti memadam jadual). Ini serupa dengan struktur IF EXISTS MySQL dan boleh dilaksanakan menggunakan pengendalian pengecualian.
Gunakan pengendalian pengecualian
Berikut ialah cara mengendalikan pengecualian "jadual tidak wujud" apabila menjatuhkan jadual:
<code class="language-sql">BEGIN EXECUTE IMMEDIATE 'DROP TABLE ' || table_name; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END;</code>
SQLCODE -942 bermaksud jadual tidak wujud. Jika SQLCODE berbeza, pengecualian dilemparkan kepada pemanggil.
Sintaks untuk versi 23c dan ke atas
Untuk Oracle 23c dan ke atas, semua pernyataan drop DDL mempunyai sintaks IF EXISTS yang dipermudahkan:
<code class="language-sql">BEGIN EXECUTE IMMEDIATE 'DROP TABLE IF EXISTS ' || table_name; END;</code>
Mengendalikan jenis objek lain
Kaedah yang sama boleh digunakan untuk menyemak kewujudan objek pangkalan data lain, termasuk urutan, pandangan, pencetus dan lajur. Berikut ialah blok kod yang setara untuk pelbagai jenis objek:
Jujukan:
<code class="language-sql"> BEGIN EXECUTE IMMEDIATE 'DROP SEQUENCE ' || sequence_name; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -2289 THEN RAISE; END IF; END;</code>
Paparan:
<code class="language-sql"> BEGIN EXECUTE IMMEDIATE 'DROP VIEW ' || view_name; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END;</code>
Pencetus:
<code class="language-sql"> BEGIN EXECUTE IMMEDIATE 'DROP TRIGGER ' || trigger_name; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -4080 THEN RAISE; END IF; END;</code>
Indeks:
<code class="language-sql"> BEGIN EXECUTE IMMEDIATE 'DROP INDEX ' || index_name; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -1418 THEN RAISE; END IF; END;</code>
Dengan menggunakan pengendalian pengecualian atau sintaks IF EXISTS (untuk Oracle 23c dan ke atas), anda boleh mengendalikan situasi di mana objek yang akan dipadamkan tidak wujud, memastikan skrip anda boleh terus berjalan tanpa ralat.
Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Jadual dan Objek Pangkalan Data Lain dengan Selamat dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!