【问题标题】:oracle SQL plus how to end command in SQL file?oracle SQL plus如何结束SQL文件中的命令?
【发布时间】:2012-01-14 11:07:46
【问题描述】:

我有几个命令的 SQL 文件。
在脚本中结束行的正确方法是什么?
是斜线[/]分号[;]吗?
常规 sqls 和存储过程代码之间有什么不同吗?
谢谢

【问题讨论】:

标签: oracle sqlplus


【解决方案1】:

对于普通的 SQL 语句,单独一行上的 / 或命令末尾的 ; 都可以正常工作。

对于包含 PL/SQL 代码的语句,例如 CREATE FUNCTIONCREATE PROCEDURECREATE PACKAGECREATE TYPE 或匿名块 (DECLARE/BEGIN/END),@987654330 @ 不会执行命令。由于 PL/SQL 使用分号作为行终止符,因此在这些语句中必须禁止将其用作命令终止符。所以在这些情况下,你必须使用/来执行命令。

根据我的经验,人们更喜欢尽可能使用分号,只在需要时使用斜杠。

请注意,对于 SQLPlus 客户端命令(例如 SETEXECUTE),根本不需要命令终止符,尽管人们出于习惯经常以分号结尾。

【讨论】:

  • +1,很好的答案。我认为人们更喜欢在可能的情况下使用分号,因为用分号结束命令并按回车键更自然,而不是按回车键,键入斜线并再次按回车键。用于执行命令缓冲区时,斜杠必须是该行中唯一的字符。
【解决方案2】:

;是您应该结束 sql 命令的方式,PLSQL 过程也是如此:

select * from dual;

select sysdate from dual;

select table_name from user tables;

exec dbms_output.putline('Hello');

【讨论】:

    【解决方案3】:

    通常我们可以使用“;”来结束sql语句,
    但是对于创建functionstriggersprocedures,您必须在“;”之后使用“/”来结束 SQL 语句。
    /”在您使用某些开发工具(如 oracle SQL developer、toad 等)时可能不需要,但当您直接在 linux 机器中执行查询时应该强制使用。

    【讨论】:

      猜你喜欢
      • 2013-01-05
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2022-01-18
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多