Kami telah memiliki beberapa perdebatan minggu ini di perusahaan saya tentang bagaimana kita harus menulis skrip SQL kami.
Latar Belakang: Basis data kami adalah Oracle 10g (segera ditingkatkan menjadi 11). Tim DBA kami menggunakan SQLPlus untuk menyebarkan skrip kami ke produksi.
Sekarang, kami memiliki penyebaran baru-baru ini yang gagal karena telah menggunakan titik koma dan garis miring ( /
). Tanda titik koma ada di akhir setiap pernyataan dan garis miring berada di antara pernyataan.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Ada beberapa pemicu yang ditambahkan kemudian dalam skrip, beberapa tampilan dibuat serta beberapa prosedur tersimpan. Memiliki kedua ;
dan /
menyebabkan setiap pernyataan berjalan dua kali menyebabkan kesalahan (terutama pada sisipan, yang perlu unik).
Di SQL Developer ini tidak terjadi, di TOAD ini tidak terjadi. Jika Anda menjalankan perintah tertentu mereka tidak akan berfungsi tanpa /
di dalamnya.
Dalam PL / SQL jika Anda memiliki subprogram (DECLARE, BEGIN, END) titik koma yang digunakan akan dianggap sebagai bagian dari subprogram, jadi Anda harus menggunakan garis miring.
Jadi pertanyaan saya adalah ini: Jika database Anda adalah Oracle, apa cara yang tepat untuk menulis skrip SQL Anda? Karena Anda tahu bahwa DB Anda adalah Oracle, haruskah Anda selalu menggunakannya /
?
sqlterminator
untuk !
jika Anda suka) dan konvensi ini cenderung diikuti oleh alat-alat lain. Namun, bahasa PL / SQL menggunakan titik koma sebagai elemen sintaks wajib.