DBMS_TRANSFORM
パッケージは、Oracle Advanced Queuingのメッセージ形式の変換機能へのインタフェースを提供します。
関連項目: メッセージ形式の変換の詳細は、『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』を参照してください。 |
この章では、次の項目について説明します。
表169-1 DBMS_TRANSFORMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
ソース・タイプのオブジェクトをターゲット・タイプのオブジェクトにマップする変換を作成します。 |
|
指定した変換を削除します。 |
|
既存の変換を変更します。 |
このプロシージャは、ソース・タイプのオブジェクトをターゲット・タイプのオブジェクトにマップする変換を作成します。変換式は、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));
パラメータ
表169-2 CREATE_TRANSFORMATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変換のスキーマを指定します。 |
|
変換名を指定します。 |
|
ソース・タイプのスキーマを指定します。 |
|
ソース・タイプを指定します。 |
|
ターゲット・タイプのスキーマを指定します。 |
|
ターゲット・タイプを指定します。 |
|
ターゲット・タイプのオブジェクトを戻す変換式を指定します。式は、ターゲット・タイプのオブジェクトを戻すファンクションまたはターゲット・タイプのコンストラクタ式にする必要があります。変換式を指定せずに、 |
使用上の注意
変換式は、ターゲット・タイプの指定した属性のタイプを戻すSQL式またはPL/SQLファンクションにする必要があります。
変換を作成、変更または削除するには、ユーザーがDBMS_TRANSFORM
の実行権限を付与されている必要があります。さらに、ユーザーは変換のソース・タイプおよびターゲット・タイプであるユーザー定義タイプに対する実行権限も必要です。また、変換ファンクションで使用されるPLSQLファンクションの実行権限も必要です。
変換では、データベース状態の書込み(DML実行)、現在の変換のコミットおよびロールバックを実行できません。
変換は、ソース・タイプを入力タイプとし、ターゲット・タイプのオブジェクトを戻すSQLファンクションにする必要があります。さらに、ソース・タイプを参照するターゲット・タイプのSQL式でも可能です。ソース・タイプのすべての参照は、source.user_data
の形式にする必要があります。
ソース・タイプとターゲット・タイプはともに非スカラー・データベース・タイプである必要があります。NULL変換式はNULLターゲット・オブジェクトにマップします。
エンキューおよびデキュー時に変換を使用する場合、操作を起動するログイン・ユーザーは変換で使用されるPL/SQLファンクションの実行権限が必要です。伝播のため、キューの所有スキーマにはこれらの権限が必要です。
このプロシージャは、指定した変換の変換式を変更します。
構文
DBMS_TRANSFORM.MODIFY_TRANSFORMATION ( schema VARCHAR2(30), name VARCHAR2(30), attribute_number INTEGER, transformation VARCHAR2(4000));
パラメータ
表169-4 MODIFY_TRANSFORMATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変換のスキーマを指定します。 |
|
変換名を指定します。 |
|
新しい変換式を指定するターゲット・タイプの属性。ターゲット・タイプの単一の式として、新しい変換を指定する場合、0(ゼロ)の値を指定します。 |
|
変換式は、ターゲット・タイプの指定した属性のタイプを戻すSQL式またはPL/SQLファンクションにする必要があります。attribute_numberが0(ゼロ)の場合、式は、ターゲット・タイプのオブジェクトを戻すPL/SQLファンクションまたはターゲット・タイプのコンストラクタ式にする必要があります。 |