関連する宣言および文をグループ化するブロックは、PL/SQLソース・プログラムの基本単位です。オプションの宣言部、必須の実行部、オプションの例外処理部が含まれます。宣言はブロックに対してローカルで、そのブロックの実行が完了するとなくなります。ブロックはネストできます。
無名ブロックは実行可能文です。
ここでのトピック
構文

「body ::=」を参照してください。
declare_section ::=

「item_list_2 ::=」を参照してください。
item_list_1 ::=

参照:
item_list_2 ::=

参照:
type_definition ::=

参照:
subtype_definition ::=

constraint ::=

item_declaration ::=

参照:
pragma ::=

参照:
body ::=

参照:
statement ::=

参照:
procedure_call ::=

sql_statement ::=

セマンティクス
plsql_block
label
ブロックで一意である未宣言の識別子。
DECLARE
ブロックの宣言部を開始します。
declare_section
ローカル宣言を置きます。ローカル宣言はこのブロックとこのブロックのサブブロックにのみ存在し、外側のブロックからは見えません。
declare_sectionの制限
create_package、create_package_bodyまたはcompound_trigger_blockのdeclare_sectionには、PRAGMA AUTONOMOUS_TRANSACTIONを含めることはできません。
trigger_bodyまたはtps_bodyのdeclare_sectionでは、データ型LONGまたはLONG RAWの変数を宣言できません。
subtype_definition
サブタイプ
定義するユーザー定義のサブタイプの名前。
base_type
定義しているサブタイプのベース型。base_typeは、CHAR、DATEまたはRECORDなどのスカラーまたはユーザー定義のPL/SQLデータ型指定子です。
CHARACTER SET character_set
文字データ型のサブタイプのキャラクタ・セットを指定します。
CHARACTER SET character_setの制限 base_typeが文字データ型でない場合は、この句を指定しないでください。
NOT NULL
このサブタイプを使用して宣言されるデータ項目にNOT NULL制約を付けます。この制約の詳細は、「NOT NULL制約」を参照してください。
constraint
数値データ型のサブタイプの制約を指定します。
constraintの制限 base_typeが数値データ型でない場合は、constraintを指定しないでください。
precision
数値データ型の制約付きサブタイプの精度を指定します。
precisionの制限 base_typeに精度を指定できない場合は、precisionを指定しないでください。
scale
数値データ型の制約付きサブタイプの位取りを指定します。
scaleの制限 base_typeに位取りを指定できない場合は、scaleを指定しないでください。
RANGE low_value .. high_value
数値データ型の制約付きサブタイプの範囲を指定します。low_valueとhigh_valueは数値リテラルである必要があります。
RANGE high_value .. low_valueの制限 この句は、base_typeがPLS_INTEGERまたはPLS_INTEGERのサブタイプの場合(事前定義またはユーザー定義の場合)にのみ指定してください。(表3-3に、PLS_INTEGERの事前定義のサブタイプの概要を示しています。範囲を指定できるユーザー定義のサブタイプの詳細は、「制約付きサブタイプ」を参照してください。)
body
BEGIN
ブロックの実行部を開始します。実行部には実行可能文が置かれます。
EXCEPTION
ブロックの例外処理部を開始します。PL/SQLによって例外が呼び出されると、ブロックの通常の実行が停止され、制御が適切なexception_handlerに移ります。例外ハンドラが終了すると、ブロック直後の文から実行が再開されます。例外処理の詳細は、第11章「PL/SQLのエラー処理」を参照してください。
exception_handler
詳細は、「例外ハンドラ」を参照してください。
END
ブロックを終了します。
name
ENDが適用されるブロックの名前(ラベル、ファンクション名、プロシージャ名またはパッケージ名)。
statement
label
文で一意である未宣言の識別子。
assignment_statement
詳細は、「代入文」を参照してください。
basic_loop_statement
詳細は、「基本LOOP文」を参照してください。
case_statement
詳細は、「CASE文」を参照してください。
close_statement
詳細は、「CLOSE文」を参照してください。
collection_method_call
次のいずれかのコレクション・メソッドの起動。これらコレクション・メソッドはプロシージャです。
DELETE
EXTEND
TRIM
構文の詳細は、「コレクション・メソッドの起動」を参照してください。
continue_statement
詳細は、「CONTINUE文」を参照してください。
cursor_for_loop_statement
詳細は、「カーソルFOR LOOP文」を参照してください。
execute_immediate_statement
詳細は、「EXECUTE IMMEDIATE文」を参照してください。
exit_statement
詳細は、「EXIT文」を参照してください。
fetch_statement
詳細は、「FETCH文」を参照してください。
for_loop_statement
詳細は、「FOR LOOP文」を参照してください。
forall_statement
詳細は、「FORALL文」を参照してください。
goto_statement
詳細は、「GOTO文」を参照してください。
if_statement
詳細は、「IF文」を参照してください。
null_statement
詳細は、「NULL文」を参照してください。
open_statement
詳細は、「OPEN文」を参照してください。
open_for_statement
詳細は、「OPEN FOR文」を参照してください。
pipe_row_statement
詳細は、「PIPE ROW文」を参照してください。
pipe_row_statementの制限 この文を使用できるのは、パイプライン・テーブル・ファンクションの本体内のみです。他の場所で使用するとPL/SQLによって例外が呼び出されます。
raise_statement
詳細は、「RAISE文」を参照してください。
return_statement
詳細は、「RETURN文」を参照してください。
select_into_statement
詳細は、「SELECT INTO文」を参照してください。
while_loop_statement
詳細は、「WHILE LOOP文」を参照してください。
procedure_call
procedure
起動するプロシージャの名前。
parameter [, parameter ]...
起動するプロシージャの実パラメータのリスト。各実パラメータのデータ型は、対応する仮パラメータのデータ型と互換性がある必要があります。使用できる実パラメータは仮パラメータのモードで決まります。
| 仮パラメータのモード | 実パラメータ |
|---|---|
IN |
定数、初期化された変数、リテラルまたは式 |
OUT |
データ型がNOT NULLとして定義されていない変数 |
IN OUT |
変数(通常は、文字列バッファまたは数値アキュムレータ) |
プロシージャによってパラメータのデフォルト値が指定される場合は、パラメータ・リストでそのパラメータを省略できます。プロシージャにパラメータがない場合、またはプロシージャによってすべてのパラメータにデフォルト値が指定される場合は、パラメータ・リストを省略するか、または空のパラメータ・リストを指定することができます。
sql_statement
commit_statement
SQL COMMIT文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
delete_statement
SQL DELETE文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。「DELETE文の拡張機能」も参照してください。
insert_statement
SQL INSERT文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。「INSERT文の拡張機能」も参照してください。
lock_table_statement
SQLのLOCK TABLE文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
merge_statement
SQL MERGE文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
rollback_statement
SQL ROLLBACK文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
savepoint_statement
SQL SAVEPOINT文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
set_transaction_statement
SQLのSET TRANSACTION文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
update_statement
SQL UPDATE文。構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。「UPDATE文の拡張機能」も参照してください。