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