SQL scriptlerimizi nasıl yazmamız gerektiği konusunda şirketimde bu hafta biraz tartıştık.
Arka plan: Veritabanımız Oracle 10g (yakında 11'e yükseltiliyor). DBA ekibimiz, komut dosyalarımızı üretime dağıtmak için SQLPlus kullanıyor.
Şimdi, son zamanlarda başarısız olan bir konuşlandırma gerçekleştirdik çünkü noktalı virgül ve eğik çizgi ( /
) kullandı. Noktalı virgül her ifadenin sonunda ve eğik çizgi ifadeler arasındaydı.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Kodda daha sonra eklenen bazı tetikleyiciler, bazı görünümler ve bazı saklı yordamlar vardı. Hem ;
ve hem de /
her ifadenin iki kez çalışmasına neden olan hatalara (özellikle benzersiz olması gereken eklerde) neden olur.
SQL Developer'da bu gerçekleşmez, TOAD'da bu olmaz. Belirli komutları çalıştırırsanız, bunlar olmadan kullanılmazlar /
.
PL / SQL'de bir alt programınız varsa (DECLARE, BEGIN, END) kullanılan noktalı virgül, alt programın bir parçası olarak kabul edilir, bu nedenle eğik çizgiyi kullanmanız gerekir.
Benim sorum şu: Eğer veritabanınız Oracle ise, SQL betiğinizi yazmanın doğru yolu nedir? DB'nizin Oracle olduğunu bildiğiniz için her zaman /
?
sqlterminator
için !
eğer isterseniz) ve bu kongre diğer araçlar tarafından takip edilecek eğilimindedir. Ancak PL / SQL dili, noktalı virgülleri zorunlu bir sözdizimi öğesi olarak kullanır.