137 DBMS_PLSQL_CODE_COVERAGE
DBMS_PLSQL_CODE_COVERAGE
パッケージは、基本ブロック・レベルでPL/SQLアプリケーションのコード・カバレッジ・データを収集するためのインタフェースを提供します。
137.1 DBMS_PLSQL_CODE_COVERAGEの概要
DBMS_PLSQL_CODE_COVERAGE
パッケージは、基本ブロック・レベルでPL/SQLアプリケーションのコード・カバレッジ情報を収集するためのインタフェースを提供します。基本ブロックとは、PL/SQLコードの入口が1箇所で出口が1箇所のブロックのことです。PL/SQLの開発者は、テスト・インフラストラクチャでコードがどの程度実行されるか確認する必要があります。カバレッジ表は、CREATE_COVERAGE_TABLES
プロシージャを使用して作成します。
一般的なコード・カバレッジは、次へのコールを含むセッションで実行されます。
-
START_COVERAGE
-
PL/SQLコードの実行
-
STOP_COVERAGE
GET_BLOCK_MAP
ファンクションは、合計カバレッジの計算に役立ちます。
参照:
-
PL/SQL基本ブロック・カバレッジを使用した品質維持の詳細は、Oracle Database開発ガイドを参照してください
-
COVERAGE PRAGMA
の構文およびセマンティクスについては、『Oracle Database PL/SQL言語リファレンス』を参照してください。 -
PLSQL_OPTIMIZE_LEVELコンパイル・パラメータの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
137.2 DBMS_PLSQL_CODE_COVERAGEのセキュリティ・モデル
ユーザーは、DBMS_PLSQL_CODE_COVERAGEパッケージに対するEXECUTE
権限を持っている必要があります。
ユーザーは、このユニットに関するカバレッジ情報を収集するユニットに対するCREATE
権限を持っている必要があります。
PL/SQL基本ブロック・カバレッジ・データは、プログラム・ユニットでINTERPRETED
コンパイル(パラメータ・セットPLSQL_CODE_TYPE
=INTERPRETED
)が使用されるときに収集されます。PL/SQL基本ブロック・カバレッジ・データは、プログラム・ユニットでNATIVE
コンパイルが使用されるときは収集されません。NATIVE
コンパイラは、パラメータPLSQL_OPTIMIZE_LEVEL
<= 1
を設定することにより無効にできます。コンパイル・モードに関係なく、ラップされたユニットのカバレッジ・データは収集されません。
137.3 DBMS_PLSQL_CODE_COVERAGEの定数
DBMS_PLSQL_CODE_COVERAGE
パッケージは、GET_BLOCK_MAP
ファンクションのnamespace
パラメータで使用される定数を提供します。
これらの定数を、次の表に示します。
表137-1 DBMS_PLSQL_CODE_COVERAGEの定数
名前 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
ファンクション・ネームスペースを指定します |
|
|
|
パッケージ仕様ネームスペースを指定します |
|
|
|
パッケージ定義(本体)ネームスペースを指定します |
|
|
|
プロシージャ・ネームスペースを指定します |
|
|
3 |
トリガー・ネームスペースを指定します |
|
|
|
タイプ仕様ネームスペースを指定します |
|
|
|
タイプ定義(本体)ネームスペースを指定します |
137.4 DBMS_PLSQL_CODE_COVERAGEのデータ構造
レコード・タイプ
表タイプ
137.4.1 MAP_RECレコード・タイプ
MAP_RECレコード・タイプは、ソース・コード内のPL/SQL基本ブロックの場所を定義します。
構文
TYPE map_rec IS RECORD ( procedure_name VARCHAR2(32767), block_num NUMBER, line NUMBER, col NUMBER, not_feasible NUMBER);
フィールド
表137-2 MAP_RECのフィールド
フィールド | 説明 |
---|---|
|
基本ブロックを含むプロシージャの名前 |
|
基本ブロックを識別します |
|
基本ブロックの先頭行 |
col |
基本ブロックの先頭列 |
|
基本ブロックのNot_feasibleマーキング |
137.5 DBMS_PLSQL_CODE_COVERAGEサブプログラムの要約
この表は、DBMS_PLSQL_CODE_COVERAGE
サブプログラムを示し、簡単に説明しています。
表137-3 DBMS_PLSQL_CODE_COVERAGEパッケージのサブプログラム
サブプログラム | 説明 | |
---|---|---|
カバレッジ表を作成します。 |
||
GET_BLOCK_MAPファンクション | 基本ブロックとPL/SQLソースのマッピングを取得します | |
ユーザーのセッションでカバレッジ・データの収集を開始し、RUN_IDを戻します。 |
||
現在のカバレッジの実行を終了します。 |
137.5.1 CREATE_COVERAGE_TABLESプロシージャ
このプロシージャは、カバレッジ・データの収集に使用する表を作成します。
構文
DBMS_PLSQL_CODE_COVERAGE.CREATE_COVERAGE_TABLES ( FORCE_IT IN BOOLEAN DEFAULT FALSE);
パラメータ
パラメータ | 説明 |
---|---|
|
デフォルトでは、カバレッジ表がすでに存在する場合、エラーになります。TRUEに設定すると、表がすでに存在する場合、表はサイレントに削除され、新しい表が作成されます。 |
例外
表137-4 CREATE_COVERAGE_TABLESの例外
例外 | 説明 |
---|---|
COVERAGE_ERROR |
|
137.5.2 GET_BLOCK_MAPファンクション
このファンクションは、基本ブロックとPL/SQLソースのマッピングを取得します。
構文
DBMS_PLSQL_CODE_COVERAGE.GET_BLOCK_MAP( unit_owner IN VARCHAR2, unit_name IN VARCHAR2, namespace IN POSITIVE) RETURN T_MAP_REC;
表137-5 パラメータ
パラメータ | 説明 |
---|---|
|
ユニットの所有者。ユニットの所有者では、大文字と小文字は区別されません。unit_ownerが空またはNULLの場合、デフォルトは現在のスキーマです。 |
|
マッピングを取得するユニット。unit_nameでは、大文字と小文字は区別されません。 |
|
このunit_nameが解決されるネームスペース。有効なネームスペース値のリストは、DBMS_PLSQL_CODE_COVERAGEの定数を参照してください。 |