関連する宣言および文をグループ化するブロックは、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文の拡張機能」も参照してください。