<bdo id='gNx4I'></bdo><ul id='gNx4I'></ul>
  1. <legend id='gNx4I'><style id='gNx4I'><dir id='gNx4I'><q id='gNx4I'></q></dir></style></legend>

    <tfoot id='gNx4I'></tfoot>

    <small id='gNx4I'></small><noframes id='gNx4I'>

    <i id='gNx4I'><tr id='gNx4I'><dt id='gNx4I'><q id='gNx4I'><span id='gNx4I'><b id='gNx4I'><form id='gNx4I'><ins id='gNx4I'></ins><ul id='gNx4I'></ul><sub id='gNx4I'></sub></form><legend id='gNx4I'></legend><bdo id='gNx4I'><pre id='gNx4I'><center id='gNx4I'></center></pre></bdo></b><th id='gNx4I'></th></span></q></dt></tr></i><div id='gNx4I'><tfoot id='gNx4I'></tfoot><dl id='gNx4I'><fieldset id='gNx4I'></fieldset></dl></div>

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

      When do I need to use a semicolon vs a slash in Oracle SQL?(我什么时候需要在 Oracle SQL 中使用分号和斜线?)

      <i id='S8Ug8'><tr id='S8Ug8'><dt id='S8Ug8'><q id='S8Ug8'><span id='S8Ug8'><b id='S8Ug8'><form id='S8Ug8'><ins id='S8Ug8'></ins><ul id='S8Ug8'></ul><sub id='S8Ug8'></sub></form><legend id='S8Ug8'></legend><bdo id='S8Ug8'><pre id='S8Ug8'><center id='S8Ug8'></center></pre></bdo></b><th id='S8Ug8'></th></span></q></dt></tr></i><div id='S8Ug8'><tfoot id='S8Ug8'></tfoot><dl id='S8Ug8'><fieldset id='S8Ug8'></fieldset></dl></div>
    1. <small id='S8Ug8'></small><noframes id='S8Ug8'>

      <legend id='S8Ug8'><style id='S8Ug8'><dir id='S8Ug8'><q id='S8Ug8'></q></dir></style></legend>

      1. <tfoot id='S8Ug8'></tfoot>
          <tbody id='S8Ug8'></tbody>

            • <bdo id='S8Ug8'></bdo><ul id='S8Ug8'></ul>

                本文介绍了我什么时候需要在 Oracle SQL 中使用分号和斜线?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                这周我们在我的公司就应该如何编写 SQL 脚本进行了一些辩论.

                We have been having some debate this week at my company as to how we should write our SQL scripts.

                背景:我们的数据库是 Oracle 10g(即将升级到 11).我们的 DBA 团队使用 SQLPlus 将我们的脚本部署到生产环境中.

                Background: Our database is Oracle 10g (upgrading to 11 soon). Our DBA team uses SQLPlus in order to deploy our scripts to production.

                现在,我们最近有一个部署失败,因为它同时使用了分号和正斜杠 (/).分号位于每条语句的末尾,斜线位于语句之间.

                Now, we had a deploy recently that failed because it had used both a semicolon and a forward slash (/). The semicolon was at the end of each statement and the slash was between statements.

                alter table foo.bar drop constraint bar1;
                /
                alter table foo.can drop constraint can1;
                /
                

                稍后在脚本中添加了一些触发器,创建了一些视图以及一些存储过程.同时具有 ;/ 导致每个语句运行两次导致错误(尤其是在插入上,它需要是唯一的).

                There were some triggers being added later on in the script, some views created as well as some stored procedures. Having both the ; and the / caused each statement to run twice causing errors (especially on the inserts, which needed to be unique).

                在 SQL Developer 中不会发生这种情况,在 TOAD 中不会发生这种情况.如果您运行某些命令,它们将在没有 / 的情况下工作.

                In SQL Developer this does not happen, in TOAD this does not happen. If you run certain commands they will not work without the / in them.

                在 PL/SQL 中,如果您有子程序(DECLARE、BEGIN、END),使用的分号将被视为子程序的一部分,因此您必须使用斜杠.

                In PL/SQL if you have a subprogram (DECLARE, BEGIN, END) the semicolon used will be considered as part of the subprogram, so you have to use the slash.

                所以我的问题是:如果您的数据库是 Oracle,那么编写 SQL 脚本的正确方法是什么?既然您知道您的数据库是 Oracle,您应该始终使用 / 吗?

                So my question is this: If your database is Oracle, what is the proper way to write your SQL script? Since you know that your DB is Oracle should you always use the /?

                推荐答案

                这是一个偏好问题,但我更喜欢看到一致使用斜杠的脚本 - 这样所有单元"的工作(创建一个 PL/SQL 对象、运行 PL/SQL 匿名块和执行 DML 语句)可以更容易地通过肉眼辨别出来.

                It's a matter of preference, but I prefer to see scripts that consistently use the slash - this way all "units" of work (creating a PL/SQL object, running a PL/SQL anonymous block, and executing a DML statement) can be picked out more easily by eye.

                此外,如果您最终转向使用 Ant 之类的东西进行部署,它将简化目标的定义,以具有一致的语句分隔符.

                Also, if you eventually move to something like Ant for deployment it will simplify the definition of targets to have a consistent statement delimiter.

                这篇关于我什么时候需要在 Oracle SQL 中使用分号和斜线?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Select n random rows from SQL Server table(从 SQL Server 表中随机选择 n 行)
                SQL query to select dates between two dates(用于选择两个日期之间的日期的 SQL 查询)
                How can I delete using INNER JOIN with SQL Server?(如何在 SQL Server 中使用 INNER JOIN 进行删除?)
                Table Naming Dilemma: Singular vs. Plural Names(表命名困境:单数与复数名称)
                INSERT statement conflicted with the FOREIGN KEY constraint - SQL Server(INSERT 语句与 FOREIGN KEY 约束冲突 - SQL Server)
                How ROWNUM works in pagination query?(ROWNUM 如何在分页查询中工作?)

                  <tbody id='b20Lh'></tbody>

                <tfoot id='b20Lh'></tfoot>
                  • <bdo id='b20Lh'></bdo><ul id='b20Lh'></ul>

                      <legend id='b20Lh'><style id='b20Lh'><dir id='b20Lh'><q id='b20Lh'></q></dir></style></legend>

                      <small id='b20Lh'></small><noframes id='b20Lh'>

                        1. <i id='b20Lh'><tr id='b20Lh'><dt id='b20Lh'><q id='b20Lh'><span id='b20Lh'><b id='b20Lh'><form id='b20Lh'><ins id='b20Lh'></ins><ul id='b20Lh'></ul><sub id='b20Lh'></sub></form><legend id='b20Lh'></legend><bdo id='b20Lh'><pre id='b20Lh'><center id='b20Lh'></center></pre></bdo></b><th id='b20Lh'></th></span></q></dt></tr></i><div id='b20Lh'><tfoot id='b20Lh'></tfoot><dl id='b20Lh'><fieldset id='b20Lh'></fieldset></dl></div>