ヘッダーをスキップ
Oracle Database PL/SQL言語リファレンス
11g リリース1(11.1)
E05670-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

ブロック

関連する宣言および文をグループ化するブロックは、PL/SQLソース・プログラムの基本単位です。 ブロックには、オプションの宣言部、必須の実行部、オプションの例外処理部が含まれます。 宣言はブロックの中で局所的に有効で、そのブロックの実行が完了すると消滅します。

ブロックは、スキーマ・レベルで(トップレベル・ブロックとして)使用するか、または別のブロック内で(ネストしたブロックとして)使用するができます。 ブロックには、実行可能文を含めることができる場所であれば、他のブロックを含めることができます。

構文

plsql_block ::=

plsql_block
plsql_block.gifの説明

body ::=

declare_section ::=

declare_section
declare_section.gifの説明

item_list_2 ::=

item_list_1 ::=

item_1_list
item_list_1.gifの説明

type_definition ::=item_declaration ::=function_declaration ::=procedure_declaration ::=pragma ::=

item_list_2 ::=

item_2_list
item_list_2.gifの説明

function_declaration ::=function_definition ::=procedure_declaration ::=procedure_definition ::=pragma ::=

type_definition ::=

type_definition
type_definition.gifの説明

record_type_definition ::=ref_cursor_type_definition ::=collection_type_definition ::=

subtype_definition ::=

subtype_definition
subtype_definition.gifの説明

item_declaration ::=

item_declaration
item_declaration.gifの説明

collection_variable_dec ::=constant_declaration ::=cursor_declaration ::=cursor_variable_declaration ::=exception_declaration ::=record_type_declaration ::=variable_declaration ::=

pragma ::=

pragma
pragma.gifの説明

autonomous_transaction_pragma ::=exception_init_pragma ::=inline_pragma ::=restrict_references_pragma ::=serially_resuable_pragma ::=

body ::=

body
basic_body.gifの説明

exception_handler ::=

statement ::=

statement
statement.gifの説明

plsql_block ::=sql_statement ::=

sql_statement ::=

sql_statement
sql_statement.gifの説明

キーワードとパラメータの説明

base_type

任意のスカラーまたはCHARDATERECORDなどのユーザー定義のPL/SQLデータ型指定子。

BEGIN

PL/SQLブロックの実行部の開始を示すキーワードです。実行部には実行可能文が置かれます。 PL/SQLブロックには1つ以上の実行可能文(NULL文でも可)が含まれている必要があります。

collection_variable_dec

コレクションを宣言します(索引付き表、ネストした表またはVARRAY)。 collection_declarationの構文は、「コレクション」を参照してください。

constant_declaration

定数を宣言します。 constant_declarationの構文は、「定数」を参照してください。

constraint

CHARNUMBERなどの制約できるデータ型にのみ適用されます。 文字データ型の場合は、最大サイズのバイト数を指定します。 数値データ型の場合は、精度と位取りの最大値を指定します。

cursor_declaration

明示カーソルを宣言します。 cursor_declarationの構文は、「明示カーソル」を参照してください。

cursor_variable_declaration

カーソル変数を宣言します。 cursor_variable_declarationの構文は、「カーソル変数宣言」を参照してください。

DECLARE

PL/SQLブロックの宣言部の開始を示すキーワードです。宣言部にはローカル宣言が置かれます。 ローカルに宣言された項目は現行のブロックとそのすべてのサブブロックにのみ存在し、外側のブロックからは見えません。 PL/SQLブロックの宣言部はオプションです。 宣言部は、ブロックの実行部の開始を示すキーワードBEGINによって暗黙的に終了します。 詳細は、「宣言」を参照してください。

PL/SQLでは前方参照ができません。 他の文で項目を参照するときは、事前に宣言しておく必要があります。 ただし、サブプログラムは、その他すべてのプログラム項目の後の宣言部の末尾で宣言してください。

END

PL/SQLブロックの終わりを示すキーワードです。 これはブロック中の最後のキーワードにする必要があります。 ENDはトランザクションの終わりを通知しないことに注意してください。 ブロックが複数のトランザクションにまたがることができるように、トランザクションも複数のブロックにまたがることができます。 詳細は、「PL/SQLブロック」を参照してください。

EXCEPTION

PL/SQLブロックの例外処理部の開始を示すキーワードです。 例外が呼び出されると、ブロックの通常の実行が停止され、制御が適切な例外ハンドラに移ります。 例外ハンドラが終了すると、ブロック直後の文から実行が再開されます。 詳細は、「PL/SQLブロック」を参照してください。

呼び出された例外の例外ハンドラが現行のブロックに存在しないと、制御は外側のブロックに渡されます。 この過程が、例外ハンドラが見つかるまで、または外側にブロックがなくなるまで繰り返されます。 PL/SQLが、例外を処理するための例外ハンドラを見つけられない場合、実行は停止され、「未処理例外」エラーがホスト環境に戻されます。 例外の詳細は、第11章「PL/SQLエラーの処理」を参照してください。

exception_declaration

例外を宣言します。 exception_declarationの構文は、「例外ハンドラ」を参照してください。

exception_handler

例外ハンドラです。例外が呼び出されると、その例外に関連付けられた一連の文を実行します。 exception_handlerの構文は、「例外ハンドラ」を参照してください。

function_declaration

ファンクションを宣言します。 「ファンクション宣言と定義」を参照してください。

label_name

PL/SQLブロックまたは文に任意のラベルを付ける未宣言の識別子です。 使用する場合は、label_nameを二重の山カッコで囲み、ラベルを付けるブロックまたは文の先頭に置く必要があります。 必要に応じて、ブロックのラベル付けに使用する場合は、label_nameを山カッコで囲まずにブロックの末尾に置くこともできます。 1つのブロックまたは文に複数のラベルを使用できますが、ラベルは、各ブロックまたは文に対して一意である必要があります。

外側のブロックで宣言されたグローバル識別子を、サブブロックで再宣言できます。この場合、ローカルでの宣言が優先され、ブロック・ラベルを使用して参照を修飾しなければ、サブブロックではグローバル識別子を参照できなくなります。 詳細は、例2-28「複数の重複したラベルを使用するブロック」を参照してください。

name

ラベル名です(デリミタ<<および>>なし)。

object_declaration

オブジェクト型のインスタンスを宣言します。 オブジェクト型を作成するには、CREATE TYPE文を使用します。

object_ref_declaration

procedure_declaration

プロシージャを宣言します。 「プロシージャ宣言と定義」を参照してください。

record_declaration

ユーザー定義のレコードを宣言します。 record_declarationの構文は、「レコード定義」を参照してください。

statement

実行可能文です(宣言文ではない)。 一連の文の中には、RAISEなどのプロシージャ文、UPDATEなどのSQL文およびPL/SQLブロックを含めることができます。 PL/SQL文は自由形式です。 つまり、PL/SQL文は、キーワード、デリミタ、リテラルが複数の行にまたがらないかぎり、何行でも続けることができます。 文の終わりは、セミコロン(;)です。

subtype_name

任意のスカラーまたはCHARDATERECORDなどのユーザー定義のPL/SQLデータ型指定子を使用して定義したユーザー定義のサブタイプ。

variable_declaration

変数を宣言します。 variable_declarationの構文は、「定数」を参照してください。

PL/SQLは、データ操作、カーソル制御およびトランザクション制御文を含むSQL文のサブセットをサポートしています。ただし、ALTERCREATEGRANTREVOKEなどのデータ定義およびデータ制御文はサポートしていません。

関連トピック