プライマリ・コンテンツに移動
Oracle Database PL/SQL言語リファレンス
12
c
リリース1 (12.1)
B71296-06
目次
索引
前
次
例一覧
1-1 PL/SQLブロック構造
1-2 問合せ結果行の一度に1行ずつの処理
2-1 ユーザー定義の引用識別子に対する大/小文字を区別しない有効な参照
2-2 ユーザー定義の引用識別子に対する大/小文字を区別しない無効な参照
2-3 ユーザー定義の引用識別子としての予約語
2-4 二重引用符の省略
2-5 大/小文字の区別の無視
2-6 単一行コメント
2-7 複数行コメント
2-8 空白文字によるソース・テキストの読みやすさの向上
2-9 NOT NULL制約が指定された変数の宣言
2-10 NULL値に初期化される変数
2-11 スカラー変数の宣言
2-12 定数の宣言
2-13 初期値が指定された変数および定数の宣言
2-14 デフォルトでNULLに初期化される変数
2-15 列と同じ型の変数の宣言
2-16 他の変数と同じ型の変数の宣言
2-17 識別子の有効範囲と可視性
2-18 ブロック・ラベルによる、再宣言されたグローバル識別子の修飾
2-19 サブプログラム名による識別子の修飾
2-20 同じ有効範囲での重複する識別子
2-21 異なるユニットでの同じ識別子の宣言
2-22 同じ有効範囲内で同じ名前を持つラベルとサブプログラム
2-23 複数の重複したラベルを使用するブロック
2-24 代入文を使用した変数への値の代入
2-25 SELECT INTO文を使用した変数への値の代入
2-26 IN OUTサブプログラム・パラメータとしての変数への値の代入
2-27 BOOLEAN変数への値の代入
2-28 連結演算子
2-29 連結演算子とNULLオペランド
2-30 カッコを使用した評価順序の制御
2-31 ネストしたカッコを使用した式
2-32 カッコを使用した読みやすさの向上
2-33 演算子の優先順位
2-34 BOOLEAN変数を出力するプロシージャ
2-35 AND演算子
2-36 OR演算子
2-37 NOT演算子
2-38 等しくない比較でのNULL値
2-39 等しい比較でのNULL値
2-40 NULLと等しいNOT NULL
2-41 論理演算子の演算順序の変更
2-42 短絡評価
2-43 式での関係演算子
2-44 式でのLIKE演算子
2-45 パターン内のエスケープ文字
2-46 式でのBETWEEN演算子
2-47 式でのIN演算子
2-48 NULL値を含む集合でのIN演算子
2-49 等価なBOOLEAN式
2-50 単純なCASE式
2-51 WHEN NULLを使用した単純なCASE式
2-52 検索CASE式
2-53 WHEN ... IS NULLを使用した検索CASE式
2-54 事前定義の問合せディレクティブ
2-55 PL/SQLコンパイル・パラメータの値の表示
2-56 PLSQL_CCFLAGSによるそれ自体への値の代入
2-57 静的定数
2-58 データベース・バージョンを確認するコード
2-59 異なるデータベース・バージョンに対する異なるコードのコンパイル
2-60 処理後のソース・テキストの表示
3-1 CHARおよびVARCHAR2の空白埋めの相違点
3-2 BOOLEAN値の出力
3-3 SQL文からのBOOLEANパラメータを持つPL/SQLファンクションの起動
3-4 オーバーフロー例外が発生するPLS_INTEGERの計算
3-5
例3-4
のオーバーフローの回避
3-6 SIMPLE_INTEGERサブタイプの制約違反
3-7 使用意図を示すユーザー定義の無制約のサブタイプ
3-8 範囲外の値を検出するユーザー定義の制約付きサブタイプ
3-9 同じベース型を使用する制約付きサブタイプ間の暗黙的な変換
3-10 同じファミリ内のベース型を使用するサブタイプ間の暗黙的な変換
4-1 IF THEN文
4-2 IF THEN ELSE文
4-3 ネストしたIF THEN ELSE文
4-4 IF THEN ELSIF文
4-5 単純なCASE文をシミュレートするIF THEN ELSIF文
4-6 単純なCASE文
4-7 検索CASE文
4-8 CASE文でのELSE句にかわるEXCEPTION
4-9 EXIT文が含まれている基本LOOP文
4-10 EXIT WHEN文が含まれている基本LOOP文
4-11 EXIT WHEN文が含まれているネストされたラベル付き基本LOOP文
4-12 EXIT WHEN文が含まれているネストされたラベルなしの基本LOOP文
4-13 基本LOOP文内のCONTINUE文
4-14 基本LOOP文内のCONTINUE WHEN文
4-15 FOR LOOP文
4-16 反転FOR LOOP文
4-17 FOR LOOP文でのSTEP句のシミュレート
4-18 索引値を変更しようとするFOR LOOP文
4-19 外側の文によるFOR LOOP文の索引の参照
4-20 変数と同じ名前を持つFOR LOOP文の索引
4-21 FOR LOOP文による索引と同じ名前を持つ変数の参照
4-22 同じ索引名のネストしたFOR LOOP文
4-23 FOR LOOP文の境界
4-24 実行時に境界が指定されるFOR LOOP文
4-25 FOR LOOP文内のEXIT WHEN文
4-26 内側のFOR LOOP文内のEXIT WHEN文
4-27 内側のFOR LOOP文内のCONTINUE WHEN文
4-28 WHILE LOOP文
4-29 GOTO文
4-30 不適切なラベル配置
4-31 GOTO文によるラベル付きのNULL文への移動
4-32 GOTO文による外側のブロックへの制御の移動
4-33 GOTO文によるIF文内への無効な制御の移動
4-34 アクションを実行しないことを明示するNULL文
4-35 サブプログラム作成時のプレースホルダとしてのNULL文
4-36 単純なCASE文のELSE句でのNULL文
5-1 文字列で索引付けされている結合配列
5-2 PLS_INTEGERで索引付けされている連想配列を戻すファンクション
5-3 連想配列の定数の宣言
5-4 VARRAY(可変サイズの配列)
5-5 ローカル型のネストした表
5-6 スタンドアロン型のネストした表
5-7 コレクション(VARRAY)変数の空への初期化
5-8 コレクション代入のデータ型の互換性
5-9 ネストした表の変数へのNULL値の代入
5-10 ネストした表の変数へのSET演算結果の代入
5-11 2次元のVARRAY(VARRAYのVARRAY)
5-12 ネストした表のネストした表と整数のVARRAYのネストした表
5-13 結合配列のネストした表と文字列のVARRAYのネストした表
5-14 VARRAYおよびネストした表の変数とNULLの比較
5-15 ネストした表が等しいかどうかの比較
5-16 ネストした表のSQL MULTISET条件による比較
5-17 ネストした表でのDELETEメソッド
5-18 文字列で索引付けされている結合配列でのDELETEメソッド
5-19 ネストした表でのTRIMメソッド
5-20 ネストした表でのEXTENDメソッド
5-21 ネストした表でのEXISTSメソッド
5-22 PLS_INTEGERで索引付けされている連想配列のFIRSTとLASTの値
5-23 文字列で索引付けされている結合配列のFIRSTとLASTの値
5-24 FOR LOOP内のFIRSTおよびLASTによるVARRAYの出力
5-25 FOR LOOP内のFIRSTおよびLASTによるネストした表の出力
5-26 VARRAYのCOUNTとLASTの値
5-27 ネストした表のCOUNTとLASTの値
5-28 様々なコレクション型のLIMITとCOUNTの値
5-29 PRIORおよびNEXTメソッド
5-30 疎であるネストした表の要素の出力
5-31 同一定義のパッケージ・コレクション型とローカル・コレクション型
5-32 同一定義のパッケージ・コレクション型とスタンドアロン・コレクション型
5-33 レコード定数の宣言
5-34 RECORD型の定義および変数の宣言
5-35 RECORDフィールドを持つRECORD型(ネストされたレコード)
5-36 VARRAYフィールド持つRECORD型
5-37 同一定義のパッケージRECORD型とローカルRECORD型
5-38 データベース表の行全体を表す%ROWTYPE変数
5-39 初期値または制約を継承しない%ROWTYPE変数
5-40 データベース表の行の一部を表す%ROWTYPE変数
5-41 結合行を表す%ROWTYPE変数
5-42 %ROWTYPEレコードの表への挿入(間違った例)
5-43 %ROWTYPEレコードの表への挿入(正しい例)
5-44 非表示列の表示列への変更により影響を受ける%ROWTYPE
5-45 同じRECORD型のレコードから別のレコードへの代入
5-46 RECORD型のレコードへの%ROWTYPEレコードの代入
5-47 同じRECORD型のネストしたレコードから別のレコードへの代入
5-48 SELECT INTOを使用したレコード変数への値の代入
5-49 ファンクションが戻すレコードへのFETCHによる値の代入
5-50 UPDATE文を使用したレコード変数への値の代入
5-51 レコード変数へのNULLの代入
5-52 デフォルト値のレコードの挿入による表の初期化
5-53 レコードを使用した行の更新
6-1 静的SQL文
6-2 擬似列CURRVALおよびNEXTVAL
6-3 SQL%FOUND暗黙カーソル属性
6-4 SQL%ROWCOUNT暗黙カーソル属性
6-5 明示カーソルの宣言および定義
6-6 LOOP文内部のFETCH文
6-7 異なる変数への同じ明示カーソルのフェッチ
6-8 明示カーソル問合せの変数(結果セットの変更なし)
6-9 明示カーソル問合せの変数(結果セットの変更あり)
6-10 仮想列に別名が必要な明示カーソル
6-11 パラメータを受け入れる明示カーソル
6-12 デフォルト値を持つカーソル・パラメータ
6-13 既存のカーソルへの仮パラメータの追加
6-14 %ISOPEN明示カーソル属性
6-15 %FOUND明示カーソル属性
6-16 %NOTFOUND明示カーソル属性
6-17 %ROWCOUNT明示カーソル属性
6-18 暗黙カーソルFOR LOOP文
6-19 明示カーソルFOR LOOP文
6-20 明示カーソルFOR LOOP文へのパラメータの引渡し
6-21 カーソルFOR LOOPによる仮想列の参照
6-22 親問合せのFROM句内の副問合せ
6-23 相関副問合せ
6-24 カーソル変数の宣言
6-25 ユーザー定義の戻り型を持つカーソル変数
6-26 カーソル変数によるデータのフェッチ
6-27 カーソル変数からコレクションへのフェッチ
6-28 カーソル変数問合せの変数(結果セットの変更なし)
6-29 カーソル変数問合せの変数(結果セットの変更あり)
6-30 静的SQLを使用したコレクションの問合せ
6-31 1つの問合せ用にカーソル変数をオープンするプロシージャ
6-32 選択された問合せ用のカーソル変数のオープン(同じ戻り型)
6-33 選択された問合せ用のカーソル変数のオープン(異なる戻り型)
6-34 Pro*Cクライアント・プログラムにおけるホスト変数としてのカーソル変数
6-35 CURSOR式
6-36 COMMENT句およびWRITE句を使用するCOMMIT文
6-37 ROLLBACK文
6-38 SAVEPOINT文およびROLLBACK文
6-39 ROLLBACKでのSAVEPOINTの再使用
6-40 読取り専用トランザクションでのSET TRANSACTION文
6-41 COMMIT文の後でのFOR UPDATEカーソルによるフェッチ
6-42 ROWID擬似列を使用したCURRENT OF句のシミュレート
6-43 パッケージでの自律型ファンクションの宣言
6-44 自律型スタンドアロン・プロシージャの宣言
6-45 自律型PL/SQLブロックの宣言
6-46 自律型トリガーによるINSERT文のログへの記録
6-47 自律型トリガーによるDDLに対するシステム固有の動的SQLの使用
6-48 自律型ファンクションの起動
7-1 動的PL/SQLブロックからのサブプログラムの起動
7-2 BOOLEAN仮パラメータを持つサブプログラムの動的起動
7-3 RECORD仮パラメータを持つサブプログラムの動的起動
7-4 連想配列仮パラメータを持つサブプログラムの動的起動
7-5 ネストした表仮パラメータを持つサブプログラムの動的起動
7-6 VARRAY仮パラメータを持つサブプログラムの動的起動
7-7 USING句でのNULLを表現する未初期化変数
7-8 OPEN FOR文、FETCH文およびCLOSE文を使用したシステム固有の動的SQL
7-9 システム固有の動的SQLを使用したコレクションの問合せ
7-10 動的PL/SQLブロックで繰り返されるプレースホルダ名
7-11 DBMS_SQL.RETURN_RESULTプロシージャ
7-12 DBMS_SQL.GET_NEXT_RESULTプロシージャ
7-13 DBMS_SQLパッケージからシステム固有の動的SQLへの切替え
7-14 システム固有の動的SQLからDBMS_SQLパッケージへの切替え
7-15 SQLインジェクションの例のための設定
7-16 文の変更に対して脆弱なプロシージャ
7-17 文のインジェクションに対して脆弱なプロシージャ
7-18 データ型変換によるSQLインジェクションに対して脆弱なプロシージャ
7-19 SQLインジェクションを回避するためのバインド変数
7-20 SQLインジェクションを回避するための妥当性チェック
7-21 SQLインジェクションを回避するための明示的な書式モデル
8-1 単純なPL/SQLプロシージャの宣言、定義および起動
8-2 単純なPL/SQLファンクションの宣言、定義および起動
8-3 ファンクション内にあるRETURN文の後での実行の再開
8-4 RETURN文へ導かれない実行パスを含むファンクション
8-5 すべての実行パスがRETURN文へ導かれるファンクション
8-6 プロシージャ内にあるRETURN文の後での実行の再開
8-7 無名ブロック内にあるRETURN文の後での実行の再開
8-8 相互に起動し合うネストしたサブプログラム
8-9 仮パラメータと実パラメータ
8-10 サブタイプからNOT NULLのみを継承する実パラメータ
8-11 サブタイプから範囲のみを継承する実パラメータと戻り値
8-12 ファンクションによる仮パラメータから制約付きサブタイプへの暗黙的な変換
8-13 実パラメータの暗黙的な変換の回避
8-14 プロシージャの起動前、起動中および起動後のパラメータ値
8-15 例外処理後のOUTおよびIN OUTパラメータの値
8-16 NULL以外のデフォルト値を持つレコード型のOUT仮パラメータ
8-17 実パラメータとしてのグローバル変数によるエイリアシング
8-18 複数の仮パラメータに対する同じ実パラメータによるエイリアシング
8-19 カーソル変数サブプログラム・パラメータによるエイリアシング
8-20 デフォルトのパラメータ値を使用したプロシージャ
8-21 ファンクションによるデフォルトのパラメータ値の提供
8-22 既存の起動を変更しないサブプログラム・パラメータの追加
8-23 無名ブロックでの異なる表記法を使用した同等な起動
8-24 SELECT文での異なる表記法を使用した同等な起動
8-25 PL/SQLプロシージャ名の解決
8-26 オーバーロードされたサブプログラム
8-27 コンパイル時エラーの原因となるオーバーロード・エラー
8-28 正常にコンパイルが行われるオーバーロード・エラー
8-29 コンパイル時エラーの原因となる
例8-28
のサブプログラムの起動
8-30
例8-28
のオーバーロード・エラーの修正
8-31
例8-30
のサブプログラムの起動
8-32 オーバーロード・エラーが含まれていないパッケージ仕様部
8-33 適切にオーバーロードされたサブプログラムの不適切な起動
8-34 パラメータの暗黙的な変換によるオーバーロード・エラー
8-35 nの階乗(n!)を戻す再帰ファンクション
8-36 n番目のフィボナッチ数を戻す再帰ファンクション
8-37 結果がキャッシュされるファンクションの宣言および定義
8-38 構成パラメータの設定を戻す、結果がキャッシュされるファンクション
8-39 結果がキャッシュされるファンクションによるセッション固有の設定の処理
8-40 結果がキャッシュされるファンクションによるセッション固有のアプリケーション・コンテキストの処理
8-41 一度に1つの名前のキャッシュ(粒度が細かい)
8-42 一度に1つの言語の変換された名前のキャッシュ(粒度が粗い)
8-43 PL/SQL無名ブロックによる外部プロシージャの起動
8-44 PL/SQLスタンドアロン・プロシージャによる外部プロシージャの起動
9-1 トリガーによる条件述語を使用したトリガーを起動する文の検出
9-2 INSTEAD OFトリガー
9-3 ビューのネストした表の列に対するINSTEAD OFトリガー
9-4 複合トリガーによる、別の表にある表に対する変更のログへの記録
9-5 複合トリガーによる変更表エラーの回避
9-6 子表に対する外部キー・トリガー
9-7 親表に対するUPDATEおよびDELETE RESTRICTトリガー
9-8 親表に対するUPDATEおよびDELETE SET NULLトリガー
9-9 親表に対するDELETE CASCADEトリガー
9-10 親表に対するUPDATE CASCADEトリガー
9-11 トリガーによる複雑な制約のチェック
9-12 トリガーによるセキュリティ認可の施行
9-13 トリガーによる新しい列値の導出
9-14 トリガーによるEMPLOYEES.SALARYの変更の記録
9-15 条件付きトリガーによる給与変更情報の出力
9-16 トリガーによるCLOB列の変更
9-17 REFERENCING句のあるトリガー
9-18 トリガーによるOBJECT_VALUE疑似列の参照
9-19 サンプル・スキーマHRに対するBEFORE文トリガー
9-20 データベースに対するAFTER文トリガー
9-21 トリガーによるログオンの監視
9-22 スキーマに対するINSTEAD OF CREATEトリガー
9-23 トリガーによるJavaサブプログラムの起動
9-24 リモート・データベースが使用できない場合に例外を処理できないトリガー
9-25
例9-24
の回避策
9-26 トリガーによる変更表エラー
9-27 更新カスケード
9-28 トリガーに関する情報の表示
10-1 単純なパッケージ仕様部
10-2 スタンドアロン・サブプログラムへの結合配列の受渡し
10-3 パッケージの仕様部と本体の一致
10-4 SERIALLY_REUSABLEパッケージの作成
10-5 SERIALLY_REUSABLEプラグマの影響
10-6 コール境界でオープンされるSERIALLY_REUSABLEパッケージのカーソル
10-7 パッケージでのカーソル宣言と定義の分離
10-8 ACCESSIBLE BY句
10-9 emp_adminパッケージの作成
11-1 PLSQL_WARNINGSコンパイル・パラメータの値の設定
11-2 DBMS_WARNINGサブプログラムを使用したPLSQL_WARNINGSの表示と設定
11-3 複数の例外に対応した1つの例外ハンドラ
11-4 例外ハンドラを共有する文のロケータ変数
11-5 内部的に定義された例外への名前付け
11-6 ZERO_DIVIDEを処理する無名ブロック
11-7 ZERO_DIVIDEを回避する無名ブロック
11-8 ROWTYPE_MISMATCHを処理する無名ブロック
11-9 再宣言された事前定義の識別子
11-10 ユーザー定義の例外の宣言、呼出しおよび処理
11-11 事前定義の例外の明示的な呼出し
11-12 例外の再呼出し
11-13 RAISE_APPLICATION_ERRORによるユーザー定義の例外の呼出し
11-14 有効範囲を超えて伝播した例外が処理される場合
11-15 有効範囲を超えて伝播した例外が処理されない場合
11-16 宣言の中で呼び出された例外が処理されない場合
11-17 宣言の中で呼び出された例外が外側のブロックで処理される場合
11-18 例外ハンドラの中で呼び出された例外が処理されない場合
11-19 例外ハンドラの中で呼び出された例外が起動元で処理される場合
11-20 例外ハンドラの中で呼び出された例外が外側のブロックで処理される場合
11-21 例外ハンドラの中で呼び出された例外が処理されない場合
11-22 例外ハンドラの中で呼び出された例外が外側のブロックで処理される場合
11-23 SQLCODEおよびSQLERRMの値の表示
11-24 例外ハンドラの実行と実行の終了
11-25 例外ハンドラの実行と実行の継続
11-26 例外処理後のトランザクションの再試行
12-1 サブプログラムのインライン化の指定
12-2 オーバーロードされたサブプログラムのインライン化の指定
12-3 サブプログラムの非インライン化の指定
12-4 PRAGMA INLINE ... 'NO'によるPRAGMA INLINE ... 'YES'のオーバーライド
12-5 ネストした問合せによるパフォーマンスの改善
12-6 NOCOPYサブプログラム・パラメータ
12-7 FOR LOOP文のDELETE文
12-8 FORALL文のDELETE文
12-9 FOR LOOP文およびFORALL文におけるINSERT文の時間の違い
12-10 コレクションのサブセットに対するFORALL文
12-11 疎コレクションおよびそのサブセットに対するFORALL文
12-12 FORALL例外の即時処理
12-13 FORALL文が完了した後のFORALL例外の処理
12-14 FORALLの各DELETEで影響を受けた行の数の表示
12-15 FORALLの各INSERT SELECTで影響を受けた行の数の表示
12-16 2つのネストした表に対するデータベースの2つの列のバルク選択
12-17 レコードのネストした表に対するバルク選択
12-18 予期しない結果が発生するSELECT BULK COLLECT INTO文
12-19 カーソルによる
例12-18
の回避策
12-20 2番目のコレクションによる
例12-18
の回避策
12-21 ROWNUM、SAMPLEおよびFETCH FIRSTによるバルク選択の制限
12-22 2つのネストした表へのバルク・フェッチ
12-23 レコードのネストした表へのバルク・フェッチ
12-24 LIMITによるバルク・フェッチの制限
12-25 2つのネストした表に対する削除行の戻し
12-26 FORALL文でのRETURN BULK COLLECT INTO付きのDELETE
12-27 FOR LOOP文でのRETURN BULK COLLECT INTO付きのDELETE
12-28 無名ブロックによる入力ホスト配列のバルク・バインド
12-29 パイプライン・テーブル・ファンクションの作成および起動
12-30 パイプライン・テーブル・ファンクションによる各行の2つの行への変換
12-31 パイプライン・テーブル・ファンクションの結果からのフェッチ
12-32 2つのカーソル変数パラメータを使用するパイプライン・テーブル・ファンクション
12-33 集計ファンクションとしてのパイプライン・テーブル・ファンクション
12-34 パイプライン・テーブル・ファンクションで処理されないNO_DATA_NEEDED
12-35 パイプライン・テーブル・ファンクションで処理されるNO_DATA_NEEDED
14-1 パッケージの再コンパイル: 例
14-2 プロシージャの再コンパイル: 例
14-3 トリガーの無効化: 例
14-4 トリガーの有効化: 例
14-5 メンバー・ファンクションの追加: 例
14-6 コレクション属性の追加: 例
14-7 コレクション型の要素の数の増加: 例
14-8 コレクション型の長さの増加: 例
14-9 型の再コンパイル: 例
14-10 型仕様部の再コンパイル: 例
14-11 ADTの進化とリセット: 例
14-12 ファンクションの作成: 例
14-13 集計ファンクションの作成: 例
14-14 ファンクションでのパッケージ・プロシージャ: 例
14-15 ファンクションの作成: 例
14-16 emp_mgmtパッケージの仕様部の作成
14-17 パッケージ本体の作成: 例
14-18 ADTの例
14-19 サブタイプの例
14-20 SQLJオブジェクト型の例
14-21 型階層の例
14-22 VARRAY型の例
14-23 ネストした表型の例
14-24 VARRAYを含むネストした表型
14-25 コンストラクタの例
14-26 メンバー・メソッドの作成: 例
14-27 静的メソッドの作成: 例
14-28 ファンクションの削除
14-29 ライブラリの削除
14-30 パッケージの削除
14-31 プロシージャの削除
14-32 トリガーの削除
14-33 ADTの削除
14-34 ADT本体の削除
A-1 2つのラップ可能PL/SQLユニットを含むSQLファイル
A-2 PL/SQLラッパー・ユーティリティによるファイルのラップ
A-3 ラップされたファイルの実行およびラップされたPL/SQLユニットの表示
A-4 CREATE_WRAPPEDプロシージャによるラップされたパッケージ本体の作成
A-5 ラップされた本体を含むパッケージの表示およびパッケージ・プロシージャの起動
B-1 修飾名
B-2 列名に解釈されるために意図していない結果を招く変数名
B-3 異なる変数名の使用による
例B-2
の修正
B-4 ブロック・ラベルの使用による
例B-2
の修正
B-5 名前解決でのサブプログラム名
B-6 列の参照の内部取得
B-7 属性の参照の内部取得
B-8 ADT属性の参照の修飾
B-9 行の式への参照の修飾