什么时候需要在Oracle SQL中使用分号和斜杠?

前端之家收集整理的这篇文章主要介绍了什么时候需要在Oracle SQL中使用分号和斜杠?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们本周在我公司就我们应该如何编写我们的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脚本?既然你知道你的DB是Oracle,你应该总是使用/?

这是一个偏好问题,但我更喜欢看到一致使用斜线的脚本 – 这样所有“单位”的工作(创建一个PL / sql对象,运行一个PL / sql匿名块,并执行一个DML语句)选择更容易通过眼睛。

此外,如果你最终移动到类似Ant的部署,它将简化目标的定义,以具有一致的语句分隔符。

原文链接:https://www.f2er.com/oracle/209047.html

猜你在找的Oracle相关文章