加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 14:52:31 所属栏目:百科 来源:网络整理
导读:我们本周在我公司就我们应该如何编写我们的SQL脚本进行了一些辩论。 背景: 我们的数据库是Oracle 10g(很快升级到11)。我们的DBA团队使用SQLPlus来将我们的脚本部署到生产环境中。 现在,我们最近有一个部署失败了,因为它使用了分号和正斜杠(/)。分号在每个
我们本周在我公司就我们应该如何编写我们的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的部署,它将简化目标的定义,以具有一致的语句分隔符。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读