BEGIN / END和EXEC之间的区别

时间:2013-09-03 08:45:03

标签: sql oracle plsql sqlplus

之间有什么区别
Begin
 bc_any_package_pkg.anyProcedure;
End;
/

EXEC bc_any_package_pkg.anyProcedure;
/

我找不到是否有任何差异......

由于

2 个答案:

答案 0 :(得分:6)

EXECUTE(简短EXEC)是一个SQL * Plus命令,它基本上围绕你的单行程包裹BEGIN END块:

  

执行单个PL / SQL语句。 EXECUTE命令经常出现   当您想要执行引用a的PL / SQL语句时很有用   存储过程。

使用SQL * Plus时它们实际上是相同的,尽管exec输入速度更快。

这不是标准的PL / SQL,这意味着如果您使用除SQL * Plus之外的任何其他工具,则有可能无法识别exec。它也适用于单行。

BEGIN END是标准的,并且可以与任何与PL / SQL接口的工具一起使用。这样的块也可以跨越多条线。

答案 1 :(得分:1)

EXEC(或完整形式的EXECUTE)是执行单个PL / SQL语句的SQL Plus command。因此它实现了与编写PL / SQL的匿名块完全相同的效果。