我有几个命令的SQL文件。
什么是在脚本中结束行的正确方法?
它是斜线[/]分号[;]吗?
常规sqls和存储过程代码之间是否有任何差异?
谢谢
答案 0 :(得分:25)
对于普通的SQL语句,一行上的/
或命令末尾的;
都可以正常工作。
对于包含PL / SQL代码的语句,例如CREATE FUNCTION
,CREATE PROCEDURE
,CREATE PACKAGE
,CREATE TYPE
或匿名块(DECLARE
/ {{ 1}} / BEGIN
),END
将不执行该命令。由于PL / SQL使用分号作为行终止符,因此必须在这些语句中禁止将其用作命令终止符。因此,在这些情况下,您必须使用;
来执行命令。
根据我的经验,人们更喜欢在可能的情况下使用分号,并且仅在需要时使用斜杠。
请注意,对于SQLPlus客户端命令 - 例如/
或SET
- 根本不需要命令终止符,尽管人们通常会以分号结束习惯。
答案 1 :(得分:2)
是你应该结束sql命令的方式,对于PLSQL程序也是如此:
select * from dual;
select sysdate from dual;
select table_name from user tables;
exec dbms_output.putline('Hello');
答案 2 :(得分:1)
通常我们可以使用“;
”结束sql语句,
但是对于创建functions
,triggers
,procedures
,您必须在“/
”之后使用“;
”来结束SQL语句。
使用某些开发人员工具(如oracle SQL开发人员,toad等)时可能不需要“/
”,但是当你直接在linux机器上执行查询时,它应该是强制要求的。