173 DBMS_TRANSFORM

DBMS_TRANSFORMパッケージは、Oracle Advanced Queuingのメッセージ形式の変換機能へのインタフェースを提供します。

この章では、次の項目について説明します。

参照:

メッセージ形式の変換の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。

173.1 DBMS_TRANSFORMサブプログラムの要約

この表は、DBMS_TRANSFORMサブプログラムを示し、簡単に説明しています。

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

サブプログラム 説明

CREATE_TRANSFORMATIONプロシージャ

ソース・タイプのオブジェクトをターゲット・タイプのオブジェクトにマップする変換を作成します。

DROP_TRANSFORMATIONプロシージャ

指定した変換を削除します。

MODIFY_TRANSFORMATIONプロシージャ

既存の変換を変更します。

173.1.1 CREATE_TRANSFORMATIONプロシージャ

このプロシージャは、ソース・タイプのオブジェクトをターゲット・タイプのオブジェクトにマップする変換を作成します。変換式は、SQL式またはPL/SQLファンクションのどちらでも作成できます。ターゲット・タイプのオブジェクトを戻す必要があります。

構文

DBMS_TRANSFORM.CREATE_TRANSFORMATION (
    schema               VARCHAR2(30),
    name                 VARCHAR2(30),
    from_schema          VARCHAR2(30),
    from_type            VARCHAR2(30),
    to_schema            VARCHAR2(30),
    to_type              VARCHAR2(30),
    transformation       VARCHAR2(4000)); 

パラメータ

表173-2 CREATE_TRANSFORMATIONプロシージャのパラメータ

パラメータ 説明

schema

変換のスキーマを指定します。

name

変換名を指定します。

from_schema

ソース・タイプのスキーマを指定します。

from_type

ソース・タイプを指定します。

to_schema

ターゲット・タイプのスキーマを指定します。

to_type

ターゲット・タイプを指定します。

transformation

ターゲット・タイプのオブジェクトを戻す変換式を指定します。式は、ターゲット・タイプのオブジェクトを戻すファンクションまたはターゲット・タイプのコンストラクタ式にする必要があります。変換式を指定せずに、MODIFY_TRANSFORMATIONを使用してターゲット・タイプの属性の変換を指定することも可能です。

使用上のノート

  • 変換式は、ターゲット・タイプの指定した属性のタイプを戻すSQL式またはPL/SQLファンクションにする必要があります。

  • 変換を作成、変更または削除するには、ユーザーがDBMS_TRANSFORMの実行権限を付与されている必要があります。さらに、ユーザーは変換のソース・タイプおよびターゲット・タイプであるユーザー定義タイプに対する実行権限も必要です。また、変換ファンクションで使用されるPLSQLファンクションの実行権限も必要です。

  • 変換では、データベース状態の書込み(DML実行)、現在の変換のコミットおよびロールバックを実行できません。

  • 変換は、ソース・タイプを入力タイプとし、ターゲット・タイプのオブジェクトを戻すSQLファンクションにする必要があります。さらに、ソース・タイプを参照するターゲット・タイプのSQL式でも可能です。ソース・タイプのすべての参照は、source.user_dataの形式にする必要があります。

  • ソース・タイプとターゲット・タイプはともに非スカラー・データベース・タイプである必要があります。NULL変換式はNULLターゲット・オブジェクトにマップします。

エンキューおよびデキュー時に変換を使用する場合、操作を起動するログイン・ユーザーは変換で使用されるPL/SQLファンクションの実行権限が必要です。伝播のため、キューの所有スキーマにはこれらの権限が必要です。

173.1.2 DROP_TRANSFORMATIONプロシージャ

このプロシージャは、指定した変換を削除します。

構文

DBMS_TRANSFORM.DROP_TRANSFORMATION (

schema VARCHAR2(30),

    name        VARCHAR2(30));

パラメータ

表173-3 DROP_TRANSFORMATIONプロシージャのパラメータ

パラメータ 説明

schema

変換のスキーマを指定します。

name

変換名を指定します。

173.1.3 MODIFY_TRANSFORMATIONプロシージャ

このプロシージャは、指定した変換の変換式を変更します。

構文

DBMS_TRANSFORM.MODIFY_TRANSFORMATION (
   schema             VARCHAR2(30),
   name               VARCHAR2(30),
   attribute_number   INTEGER,
   transformation     VARCHAR2(4000));

パラメータ

表173-4 MODIFY_TRANSFORMATIONプロシージャのパラメータ

パラメータ 説明

schema

変換のスキーマを指定します。

name

変換名を指定します。

attribute_number

新しい変換式を指定するターゲット・タイプの属性。ターゲット・タイプの単一の式として、新しい変換を指定する場合、0(ゼロ)の値を指定します。

transformation

変換式は、ターゲット・タイプの指定した属性のタイプを戻すSQL式またはPL/SQLファンクションにする必要があります。attribute_numberが0(ゼロ)の場合、式は、ターゲット・タイプのオブジェクトを戻すPL/SQLファンクションまたはターゲット・タイプのコンストラクタ式にする必要があります。

使用上のノート

  • 新しい変換がターゲット・タイプの単一式である場合、attribute_numberを0(ゼロ)で指定できます。さらに、ターゲット・タイプの属性ごとに新しい変換を指定できます。

  • このプロシージャを使用して、ターゲット・タイプの各属性に対する個別の式として、変換を定義できます。大規模な変換の場合、この表現は読み取りやすく、アプリケーションで変換をより厳密に制御できます。ターゲット・タイプの特定の属性に対し、変換式を指定しないと、それらは変換の適用時にNULLと評価されます。