Apakah saya benar dalam memahami bahwa CREATE OR REPLACE pada dasarnya berarti "jika objek itu ada, lepaskan, lalu buat dengan cara apa pun?"
Jika ya, apa yang saya lakukan salah? Ini bekerja:
CREATE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
Dan ini tidak (ORA-00922: opsi hilang atau tidak valid):
CREATE OR REPLACE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
Apakah saya melakukan sesuatu yang bodoh? Sepertinya saya tidak dapat menemukan banyak dokumentasi tentang sintaks ini.
CREATE OR REPLACE
juga bekerja untuk sinonim dan pemicuSkrip berikut harus melakukan trik di Oracle:
sumber
Tidak bekerja dengan Tabel, hanya fungsi dll.
Berikut adalah situs dengan beberapa contoh .
sumber
Prosedur yang berguna untuk database oracle tanpa menggunakan pengecualian (dalam keadaan Anda harus mengganti user_tables dengan dba_tables dan / atau membatasi tablespace dalam kueri):
sumber
sumber
Jika Anda melakukan dalam kode maka periksa dulu tabel di database dengan menggunakan query SELECT nama_tabel FROM user_tables WHERE table_name = 'XYZ'
jika record ditemukan maka potong tabel jika tidak buat tabel
Bekerja seperti Buat atau Ganti.
sumber
Anda dapat menggunakan CORT ( www.softcraftltd.co.uk/cort ). Alat ini memungkinkan untuk membuat atau mengganti tabel di Oracle. Sepertinya:
Ini menyimpan data.
sumber
Jadi saya telah menggunakan ini dan bekerja dengan sangat baik: - ini bekerja lebih seperti DROP JIKA ADA tetapi menyelesaikan pekerjaan
Semoga ini bisa membantu Juga referensi: Kesalahan PLS-00103 di PL / SQL Pengembang
sumber
'Buat atau ganti tabel' tidak dimungkinkan. Seperti yang dinyatakan orang lain, Anda dapat menulis prosedur dan / atau menggunakan mulai mengeksekusi segera (...). Karena saya tidak melihat jawaban dengan cara membuat tabel (kembali), saya meletakkan skrip sebagai jawaban.
PS: sejalan dengan apa yang disebutkan jeffrey-kemp: skrip di bawah ini TIDAK akan menyimpan data yang sudah ada di tabel yang akan Anda jatuhkan. Karena risiko kehilangan data, di perusahaan kami hanya diperbolehkan untuk mengubah tabel yang ada di lingkungan produksi, dan tidak diperbolehkan untuk menghapus tabel. Dengan menggunakan pernyataan drop table, cepat atau lambat Anda akan mendapatkan polisi perusahaan yang berdiri di meja Anda.
sumber
Saya akan melakukan sesuatu seperti ini
sumber
Jika ini untuk MS SQL .. Kode berikut akan selalu berjalan tidak peduli bagaimana tabelnya sudah ada atau tidak.
sumber