【发布时间】:2012-01-14 11:07:46
【问题描述】:
我有几个命令的 SQL 文件。
在脚本中结束行的正确方法是什么?
是斜线[/]分号[;]吗?
常规 sqls 和存储过程代码之间有什么不同吗?
谢谢
【问题讨论】:
-
这里有一个类似意图和很好解释的线程:stackoverflow.com/questions/1079949/…
我有几个命令的 SQL 文件。
在脚本中结束行的正确方法是什么?
是斜线[/]分号[;]吗?
常规 sqls 和存储过程代码之间有什么不同吗?
谢谢
【问题讨论】:
对于普通的 SQL 语句,单独一行上的 / 或命令末尾的 ; 都可以正常工作。
对于包含 PL/SQL 代码的语句,例如 CREATE FUNCTION、CREATE PROCEDURE、CREATE PACKAGE、CREATE TYPE 或匿名块 (DECLARE/BEGIN/END),@987654330 @ 不会执行命令。由于 PL/SQL 使用分号作为行终止符,因此在这些语句中必须禁止将其用作命令终止符。所以在这些情况下,你必须使用/来执行命令。
根据我的经验,人们更喜欢尽可能使用分号,只在需要时使用斜杠。
请注意,对于 SQLPlus 客户端命令(例如 SET 或 EXECUTE),根本不需要命令终止符,尽管人们出于习惯经常以分号结尾。
【讨论】:
;是您应该结束 sql 命令的方式,PLSQL 过程也是如此:
select * from dual;
select sysdate from dual;
select table_name from user tables;
exec dbms_output.putline('Hello');
【讨论】:
通常我们可以使用“;”来结束sql语句,
但是对于创建functions、triggers、procedures,您必须在“;”之后使用“/”来结束 SQL 语句。
“/”在您使用某些开发工具(如 oracle SQL developer、toad 等)时可能不需要,但当您直接在 linux 机器中执行查询时应该强制使用。
【讨论】: