У нас были некоторые дебаты на этой неделе в моей компании относительно того, как мы должны писать наши SQL-скрипты.
Фон: Наша база данных - Oracle 10g (до 11 скоро). Наша команда DBA использует SQLPlus для развертывания наших сценариев для производства.
Теперь у нас недавно было развертывание, потому что оно использовало как точку с запятой, так и косую черту (/
). Точка с запятой была в конце каждого утверждения, а слэш - между операторами.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
В script были добавлены триггеры, некоторые созданные представления, а также некоторые хранимые процедуры. Наличие как ;
, так и /
приводило к тому, что каждый оператор запускался дважды, вызывая ошибки (особенно на вставках, которые должны были быть уникальными).
В SQL Developer этого не происходит, в TOAD этого не происходит. Если вы выполняете определенные команды, они не будут работать без /
в них.
В PL/SQL, если у вас есть подпрограмма (DECLARE, BEGIN, END), точка с запятой будет считаться частью подпрограммы, поэтому вам нужно использовать косую черту.
Итак, мой вопрос таков: если ваша база данных - это Oracle, каков правильный способ написать SQL script? Поскольку вы знаете, что ваша БД является Oracle, вы должны всегда использовать /
?