oracle SQL加上如何在SQL文件中结束命令?

时间:2011-12-06 21:05:04

标签: oracle sqlplus

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

3 个答案:

答案 0 :(得分:25)

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

对于包含PL / SQL代码的语句,例如CREATE FUNCTIONCREATE PROCEDURECREATE PACKAGECREATE 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语句,
但是对于创建functionstriggersprocedures,您必须在“/”之后使用“;”来结束SQL语句。
使用某些开发人员工具(如oracle SQL开发人员,toad等)时可能不需要“/”,但是当你直接在linux机器上执行查询时,它应该是强制要求的。