我们本周在我公司就我们应该如何编写我们的sql脚本进行了一些辩论。
原文链接:https://www.f2er.com/oracle/209047.html背景:
我们的数据库是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脚本?既然你知道你的DB是Oracle,你应该总是使用/?