本周我们在我的公司就应该如何编写 SQL 脚本进行了一些辩论。
背景:我们的数据库是Oracle 10g(即将升级到11)。我们的 DBA 团队使用 SQLPlus 将我们的脚本部署到生产环境。
现在,我们最近有一个部署失败,因为它同时使用了分号和正斜杠 ( /
)。分号位于每个语句的末尾,斜线位于语句之间。
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
稍后在脚本中添加了一些触发器,创建了一些视图以及一些存储过程。让 the;
和 the/
导致每个语句运行两次导致错误(尤其是在插入时,它需要是唯一的)。
在 SQL Developer 中不会发生这种情况,在 TOAD 中不会发生这种情况。如果您运行某些命令,如果没有它们,它们将无法工作/
。
在 PL/SQL 中,如果您有一个子程序(DECLARE、BEGIN、END),使用的分号将被视为子程序的一部分,因此您必须使用斜杠。
所以我的问题是:如果您的数据库是 Oracle,那么编写 SQL 脚本的正确方法是什么?既然您知道您的数据库是 Oracle,您应该始终使用/
?