На цьому тижні ми проводили дебати в моїй компанії щодо того, як нам писати сценарії SQL.
Передумови: Наша база даних Oracle 10g (оновлення скоро до 11). Наша команда DBA використовує SQLPlus для того, щоб розгорнути наші сценарії до виробництва.
Зараз у нас нещодавно було розгортання, яке не вдалося, оскільки він використовував як крапку з комою, так і пряму косу рису ( /
). Точка з комою була в кінці кожного висловлювання, а косої риски - між твердженнями.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Пізніше в сценарій були додані деякі тригери, створені деякі представлення даних, а також деякі збережені процедури. Наявлення як ;
і /
викликаного запуску кожного оператора двічі викликає помилки (особливо на вставках, які повинні бути унікальними).
У SQL Developer цього не відбувається, в TOAD цього не відбувається. Якщо ви запускаєте певні команди, вони не працюватимуть без /
їх.
У PL / SQL, якщо у вас є підпрограма (DECLARE, BEGIN, END), використовувана крапка з комою вважатиметься частиною підпрограми, тому вам доведеться використовувати косу рису.
Отже, моє запитання таке: Якщо у вашій базі даних є Oracle, який правильний спосіб написання сценарію SQL? Оскільки ви знаєте, що ваша БД Oracle, ви завжди повинні використовувати /
?
sqlterminator
щоб , !
якщо ви хочете) , і ця угода , як правило, йдуть інші інструменти. Однак мова PL / SQL використовує крапки з комою як обов'язковий елемент синтаксису.