5

違いは何ですか

Begin
 bc_any_package_pkg.anyProcedure;
End;
/

EXEC bc_any_package_pkg.anyProcedure;
/

違いがあるかどうかはわかりません...

ありがとう

4

2 に答える 2

9

EXECUTE(short ) は、基本的にワンライナーをブロックでEXECラップする SQL*Plus コマンドです。BEGIN END

単一の PL/SQL ステートメントを実行します。このEXECUTEコマンドは、ストアド プロシージャを参照する PL/SQL ステートメントを実行する場合に便利です。

SQL*Plus を使用する場合も同じですが、exec入力はより高速です。

これは標準の PL/SQL ではありません。つまり、SQL*Plus 以外のツールを使用すると、exec認識されない可能性があります。また、単一行でのみ機能します。

一方BEGIN END、標準であり、PL/SQL とやり取りするすべてのツールで動作します。このようなブロックは、複数の行にまたがることもできます。

于 2013-09-03T08:53:53.940 に答える
1

EXEC(またはEXECUTEその完全な形式) は、単一の PL/SQL ステートメントを実行するSQL Plus コマンドです。したがって、PL/SQL の匿名ブロックを作成するのとまったく同じ効果が得られます。

于 2013-09-03T08:55:01.437 に答える