2

declareストアド プロシージャの宣言セクションでキーワードを省略できると言われました。declare宣言セクションのキーワードはオプションですか? もしそうなら、なぜそれは存在するのですか?

create or replace procedure myproc is

-- starting Declaration section
DECLARE  -- is DECLARE keyword optional? Can i omit it here?
cursor mycursor as
select ...;
var1 number;
var2 varchar2;
-- end of Declaration section

BEGIN
...
END myproc;
4

2 に答える 2

5

以下は、pl/sql プロシージャを作成するための構文です。変数とカーソルの宣言は必要に応じて行われ、必須ではありません。したがって、宣言したい場合は宣言し、そうでない場合は無視します。

CREATE [OR REPLACE] PROCEDURE procedure_name
    [ (parameter [,parameter]) ]

IS
    [declaration_section]

BEGIN
    executable_section

[EXCEPTION
    exception_section]

END [procedure_name];

Declareまた、宣言ブロックが暗黙的にそこにあるため、キーワードがプロシージャで使用されていないことを追加したい。

編集: 宣言ブロックが暗黙的でない場合には、宣言キーワードが存在します。匿名ブロックとしましょう。ここで Declare ブロックを指定する必要があります。そうしないと、変数を宣言する場所がありません。

匿名ブロックの構文:

DECLARE
 <constant name> CONSTANT <data type> := <value>;
 <constant name> CONSTANT <data type> DEFAULT <value>;
BEGIN
  <valid statement>;
EXCEPTION
  <exception handler>;
END;
于 2013-06-22T02:49:28.560 に答える