ヘッダーをスキップ
Oracle® TimesTen In-Memory Database PL/SQLパッケージ・リファレンス
11gリリース2 (11.2.2)
B66725-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 DBMS_PREPROCESSOR

DBMS_PREPROCESSORパッケージは、後処理された形式でPL/SQLユニットのソース・テキストの出力または取出しを行うためのインタフェースを提供します。

このパッケージの内容は次のおとりです。


DBMS_PREPROCESSORの使用


概要

サブプログラムには3つのスタイルがあります。

  1. スキーマ名、ユニット・タイプ名およびユニット名を使用するサブプログラム

  2. 任意のPL/SQLのコンパイル・ユニットのソース・テキストを含むVARCHAR2の文字列を使用するサブプログラム

  3. 任意のPL/SQLのコンパイル・ユニットのセグメント化されたソース・テキストを含むVARCHAR2連想配列(索引付き表)を使用するサブプログラム

1つ目のスタイルのサブプログラムは、保存されたPL/SQLユニットの後処理済ソース・テキストの出力または取出しのために使用されます。ユーザーは、このユニットの元のソース・テキストを表示するための権限が必要です。また、ユーザーは、ユニットが定義されているスキーマ、ユニット・タイプおよびユニット名を指定する必要もあります。スキーマがNULLの場合は、現行のユーザー・スキーマが使用されます。保存されたユニットのステータスがVALIDで、ユーザーが必要な権限を持っている場合、後処理済のソース・テキストは、最後にコンパイルされたユニットのソース・テキストと同じであることが保証されます。2つ目または3つ目のスタイルのサブプログラムは、現行のユーザー・スキーマで後処理済のソース・テキストを生成するために使用されます。ソース・テキストは、2つ目のスタイルでは単一のVARCHAR2の文字列として、3つ目のスタイルではVARCHAR2連想配列として渡されます。ソース・テキストには、任意のPL/SQLのコンパイル・ユニットを指定できます。通常は、無名ブロックのソース・テキストを渡して、現行のユーザー・スキーマに後処理済のソース・テキストを生成するために使用されます。3つ目のスタイルは、ソース・テキストがVARCHAR2の長さの制限を超える場合に有効です。


使用上の注意


データ構造

DBMS_PREPROCESSORパッケージは、表タイプを定義します。


注意:

  • PLS_INTEGERデータ・タイプとBINARY_INTEGERデータ・タイプは同じです。このドキュメントでは、リファレンス情報でデータ・タイプ(表タイプ、レコード・タイプ、サブプログラム・パラメータ、サブプログラム戻り値など)を示す場合にBINARY_INTEGERを使用しますが、説明および例ではいずれも使用される場合があります。

  • INTEGERデータ・タイプとNUMBER(38)データ・タイプも同じです。このドキュメントでは、全体をとおしてINTEGERを使用します。


表タイプ

SOURCE_LINES_T表タイプ


SOURCE_LINES_T表タイプ

この表タイプは、後処理済のソース・テキストの行を格納します。処理前および処理後の両方で、PL/SQLソース・テキストを保持するために使用されます。テキストの容量が32KBを超える場合に、特に有効です。

構文

TYPE source_lines_t IS
    TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;

DBMS_PREPROCESSORサブプログラムの要約

表5-1 DBMS_PREPROCESSORパッケージのサブプログラム

サブプログラム 説明

GET_POST_PROCESSED_SOURCEファンクション


後処理済のソース・テキストを戻します。

PRINT_POST_PROCESSED_SOURCEプロシージャ


後処理済のソース・テキストを出力します。



GET_POST_PROCESSED_SOURCEファンクション

このオーバーロードされたファンクションは、後処理済のソース・テキストを戻します。複数の機能を構文形式ごとに、定義とともに示します。

構文

保存されたPL/SQLユニットの後処理済のソース・テキストを戻します。

DBMS_PREPROCESSOR.GET_POST_PROCESSED_SOURCE (
   object_type    IN VARCHAR2,
   schema_name    IN VARCHAR2,
   object_name    IN VARCHAR2)
  RETURN dbms_preprocessor.source_lines_t;

コンパイル・ユニットの後処理済のソース・テキストを戻します。

DBMS_PREPROCESSOR.GET_POST_PROCESSED_SOURCE (
   source        IN VARCHAR2)
  RETURN dbms_preprocessor.source_lines_t;

コンパイル・ユニットのソース・テキストを含む連想配列(索引付き表)の後処理済のソース・テキストを戻します。

DBMS_PREPROCESSOR.GET_POST_PROCESSED_SOURCE (
   source        IN dbms_preprocessor.source_lines_t)
  RETURN dbms_preprocessor.source_lines_t;

パラメータ

表5-2 GET_POST_PROCESSED_SOURCEファンクションのパラメータ

パラメータ 説明

object_type

PACKAGEPACKAGE BODYPROCEDUREまたはFUNCTION(大/小文字は区別されます)のいずれか

schema_name

スキーマ名(引用された識別子を使用しないかぎり、大/小文字は区別されません)

NULLの場合は、現行のスキーマが使用されます。

object_name

オブジェクトの名前(引用された識別子を使用しないかぎり、大/小文字は区別されません)

source

コンパイル・ユニットのソース・テキスト

source_lines_t

コンパイル・ユニットのソース・テキストを含む連想配列

ソース・テキストは、すべてのNULLではない連想配列の要素を昇順の索引順序で連結したものです。


戻り値

索引1から開始する後処理済のソース・テキストの行を含む連想配列

使用上の注意

例外

表5-3 GET_POST_PROCESSED_SOURCEファンクションの例外

例外 説明

ORA-24234

権限が不十分であるか、オブジェクトが存在しません

ORA-24235

不正なオブジェクト・タイプ値(PACKAGEPACKAGE BODYPROCEDUREFUNCTIONのいずれでもありません)

ORA-24236

ソース・テキストが空です

ORA-00931

識別子がありません

object_name値はNULLにできません。

ORA-06502

数値または値のエラーが発生しました。

  • 文字列バッファが小さすぎます。

  • 行が長すぎます(32767バイトを超えている)。



PRINT_POST_PROCESSED_SOURCEプロシージャ

このオーバーロードされたプロシージャは、DBMS_OUTPUT.PUT_LINEをコールして後処理済のソース・テキストを表示できます。複数の機能を構文形式ごとに、定義とともに示します。

構文

保存されたPL/SQLユニットの後処理済のソース・テキストを出力します。

DBMS_PREPROCESSOR.PRINT_POST_PROCESSED_SOURCE (
   object_type    IN VARCHAR2,
   schema_name    IN VARCHAR2,
   object_name    IN VARCHAR2);

コンパイル・ユニットの後処理済のソース・テキストを出力します。

DBMS_PREPROCESSOR.PRINT_POST_PROCESSED_SOURCE (
   source        IN VARCHAR2);

コンパイル・ユニットのソース・テキストを含む連想配列の後処理済のソース・テキストを出力します。

DBMS_PREPROCESSOR.PRINT_POST_PROCESSED_SOURCE (
   source        IN dbms_preprocessor.source_lines_t);

パラメータ

表5-4 PRINT_POST_PROCESSED_SOURCEプロシージャ・パラメータ

パラメータ 説明

object_type

PACKAGEPACKAGE BODYPROCEDUREまたはFUNCTION(大/小文字は区別されます)のいずれか

schema_name

スキーマ名(引用された識別子を使用しないかぎり、大/小文字は区別されません)

NULLの場合は、現行のスキーマが使用されます。

object_name

オブジェクトの名前(引用された識別子を使用しないかぎり、大/小文字は区別されません)

source

コンパイル・ユニットのソース・テキスト

source_lines_t

コンパイル・ユニットのソース・テキストを含む連想配列

ソース・テキストは、すべてのNULLではない連想配列の要素を昇順の索引順序で連結したものです。


使用上の注意

連想配列には、空白が含まれる場合があります。Null要素は、連結時に無視されます。

例外

表5-5 PRINT_POST_PROCESSED_SOURCEプロシージャの例外

例外 説明

ORA-24234

権限が不十分であるか、オブジェクトが存在しません

ORA-24235

不正なオブジェクト・タイプ値(PACKAGEPACKAGE BODYPROCEDUREFUNCTIONのいずれでもありません)

ORA-24236

ソース・テキストが空です

ORA-00931

識別子がありません

object_name値はNULLにできません。

ORA-06502

数値または値のエラーが発生しました。

  • 文字列バッファが小さすぎます。

  • 行が長すぎます(32767バイトを超えている)。