ヘッダーをスキップ
Oracle® Streams概要および管理
11gリリース2 (11.2)
B61351-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

28 ルールベースの変換の監視

ルールベースの変換は、ポジティブ・ルール・セットルールTRUEに評価される場合に発生するメッセージへの変更です。この章では、ルールベースの変換の監視に使用できる問合せの例を示します。

次の各項では、ルールベースの変換の監視について説明します。


注意:

Oracle Enterprise ManagerのOracle Streamsツールも、Oracle Streams環境を監視するための優れた手段です。詳細は、Oracle Streamsツールのオンライン・ヘルプを参照してください。


関連項目:


すべてのルールベースの変換に関する情報の表示

この項で説明する問合せを実行すると、データベース内の各ルールベースの変換に関する次の情報が表示されます。

次の問合せを実行すると、データベース内のルールベースの変換に関する前述の情報が表示されます。

COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A20
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A20
COLUMN TRANSFORM_TYPE HEADING 'Transformation Type' FORMAT A30

SELECT RULE_OWNER, 
       RULE_NAME, 
       TRANSFORM_TYPE
  FROM DBA_STREAMS_TRANSFORMATIONS;

出力は次のようになります。

Rule Owner           Rule Name            Transformation Type
-------------------- -------------------- ------------------------------
STRMADMIN            EMPLOYEES23          DECLARATIVE TRANSFORMATION
STRMADMIN            JOBS26               DECLARATIVE TRANSFORMATION
STRMADMIN            DEPARTMENTS33        SUBSET RULE
STRMADMIN            DEPARTMENTS32        SUBSET RULE
STRMADMIN            DEPARTMENTS34        SUBSET RULE
STRMADMIN            DEPARTMENTS32        CUSTOM TRANSFORMATION
STRMADMIN            DEPARTMENTS33        CUSTOM TRANSFORMATION
STRMADMIN            DEPARTMENTS34        CUSTOM TRANSFORMATION

宣言ルールベースの変換の表示

宣言ルールベースの変換は、行LCRの一般的な変換シナリオに対応するルールベースの変換です。宣言ルールベースの変換は、PL/SQLを使用せずに内部的に実行されます。

この項で説明する問合せを実行すると、データベース内の各宣言ルールベースの変換に関する次の情報が表示されます。

  • 宣言ルールベースの変換が指定されたルールの所有者

  • 宣言ルールベースの変換が指定されたルールの名前

  • 指定された宣言ルールベースの変換のタイプ。ADD COLUMNDELETE COLUMNKEEP COLUMNSRENAME COLUMNRENAME SCHEMAおよびRENAME TABLEの各タイプが表示される可能性があります。

  • 宣言ルールベースの変換の優先順位。この優先順位は、同じルールに指定されている同じ手順番号の他の変換に対する、変換の実行順序です。手順番号が同じ変換では、優先順位が最も低い変換が最初に実行されます。

  • 宣言ルールベースの変換の手順番号。複数の宣言ルールベースの変換が同じルールに指定された場合、手順番号が最も小さい変換が最初に実行されます。変換を作成する際に、宣言ルールベースの変換の手順番号を指定できます。

次の問合せを実行すると、データベース内の宣言ルールベースの変換に関する情報が表示されます。

COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A15
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A15
COLUMN DECLARATIVE_TYPE HEADING 'Declarative|Type' FORMAT A15
COLUMN PRECEDENCE HEADING 'Precedence' FORMAT 99999
COLUMN STEP_NUMBER HEADING 'Step Number' FORMAT 99999

SELECT RULE_OWNER, 
       RULE_NAME, 
       DECLARATIVE_TYPE,
       PRECEDENCE,
       STEP_NUMBER
  FROM DBA_STREAMS_TRANSFORMATIONS
  WHERE TRANSFORM_TYPE = 'DECLARATIVE TRANSFORMATION';

出力は次のようになります。

                                Declarative
Rule Owner      Rule Name       Type            Precedence Step Number
--------------- --------------- --------------- ---------- -----------
STRMADMIN       JOBS26          RENAME TABLE             4           0
STRMADMIN       EMPLOYEES23     ADD COLUMN               3           0

この出力から、変換の手順番号が同じ(0(ゼロ))で、ADD COLUMN変換の優先順位が低いため、ADD COLUMN変換がRENAME TABLE変換より前に実行されることがわかります。

データベースに存在する宣言ルールベースの変換のタイプを判別する場合は、各変換の詳細を表示できます。次のデータ・ディクショナリ・ビューには、様々なタイプの宣言ルールベースの変換の詳細が含まれます。

  • DBA_STREAMS_ADD_COLUMNビューには、ADD COLUMN宣言変換に関する情報が含まれます。

  • DBA_STREAMS_DELETE_COLUMNビューには、DELETE COLUMN宣言変換に関する情報が含まれます。

  • DBA_STREAMS_KEEP_COLUMNSビューには、KEEP COLUMNS宣言変換に関する情報が含まれます。

  • DBA_STREAMS_RENAME_COLUMNビューには、RENAME COLUMN宣言変換に関する情報が含まれます。

  • DBA_STREAMS_RENAME_SCHEMAビューには、RENAME SCHEMA宣言変換に関する情報が含まれます。

  • DBA_STREAMS_RENAME_TABLEビューには、RENAME TABLE宣言変換に関する情報が含まれます。

たとえば、前述の問合せではADD COLUMN変換およびRENAME TABLE変換が表示されます。次の各項では、これらの変換の詳細情報を表示する問合せを示します。


注意:

優先順位および手順番号は、宣言ルールベースの変換のみに関連します。サブセット・ルール変換またはカスタム・ルールベースの変換には関連しません。

ADD COLUMN変換に関する情報の表示

次の問合せを実行すると、データベース内のADD COLUMN 宣言ルールベースの変換に関する詳細情報が表示されます。

COLUMN RULE_OWNER HEADING 'Rule|Owner' FORMAT A9
COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A12
COLUMN SCHEMA_NAME HEADING 'Schema|Name' FORMAT A6
COLUMN TABLE_NAME HEADING 'Table|Name' FORMAT A9
COLUMN COLUMN_NAME HEADING 'Column|Name' FORMAT A10
COLUMN COLUMN_TYPE HEADING 'Column|Type' FORMAT A8

SELECT RULE_OWNER, 
       RULE_NAME, 
       SCHEMA_NAME,
       TABLE_NAME,
       COLUMN_NAME,
       ANYDATA.AccessDate(COLUMN_VALUE) "Value",
       COLUMN_TYPE
  FROM DBA_STREAMS_ADD_COLUMN;

出力は次のようになります。

Rule      Rule         Schema Table     Column                          Column
Owner     Name         Name   Name      Name       Value                Type
--------- ------------ ------ --------- ---------- -------------------- --------
STRMADMIN EMPLOYEES23  HR     EMPLOYEES BIRTH_DATE                      SYS.DATE

この出力には、ADD COLUMN宣言ルールベースの変換に関する次の情報が表示されています。

  • この変換は、strmadminスキーマのemployees23ルールに対して指定されています。

  • この変換によって、hrスキーマのemployees表を含む行LCRに列が追加されています。

  • 追加された列の列名はbirth_dateです。

  • 追加された列の値はNULLです。DBA_STREAMS_ADD_COLUMNビューのCOLUMN_VALUE列の型がANYDATAであることに注意してください。この例では、列の型がDATEであるため、ANYDATA.AccessDateメンバー・ファンクションを使用して値が表示されています。他の型の値を表示するには、適切なメンバー・ファンクションを使用します。

  • 追加された列の型はDATEです。

RENAME TABLE変換に関する情報の表示

次の問合せを実行すると、データベース内のRENAME TABLE 宣言ルールベースの変換に関する詳細情報が表示されます。

COLUMN RULE_OWNER HEADING 'Rule|Owner' FORMAT A10
COLUMN RULE_NAME HEADING 'Rule|Name' FORMAT A10
COLUMN FROM_SCHEMA_NAME HEADING 'From|Schema|Name' FORMAT A10
COLUMN TO_SCHEMA_NAME HEADING 'To|Schema|Name' FORMAT A10
COLUMN FROM_TABLE_NAME HEADING 'From|Table|Name' FORMAT A15
COLUMN TO_TABLE_NAME HEADING 'To|Table|Name' FORMAT A15

SELECT RULE_OWNER, 
       RULE_NAME, 
       FROM_SCHEMA_NAME,
       TO_SCHEMA_NAME,
       FROM_TABLE_NAME,
       TO_TABLE_NAME
  FROM DBA_STREAMS_RENAME_TABLE;

出力は次のようになります。

                      From       To         From            To
Rule       Rule       Schema     Schema     Table           Table
Owner      Name       Name       Name       Name            Name
---------- ---------- ---------- ---------- --------------- ---------------
STRMADMIN  JOBS26     HR         HR         JOBS            ASSIGNMENTS

この出力には、RENAME TABLE宣言ルールベースの変換に関する次の情報が表示されています。

  • この変換は、strmadminスキーマのjobs26ルールに対して指定されています。

  • この変換によって、行LCR内のhr.jobs表の名前が、hr.assignments表に変更されています。

カスタム・ルールベースの変換の表示

カスタム・ルールベースの変換は、ユーザー定義PL/SQLファンクションが必要なルールベースの変換です。この項で説明する問合せを実行すると、データベース内の指定されたカスタム・ルールベースの変換に関する次の情報が表示されます。

  • このカスタム・ルールベースの変換が設定されたルールの所有者

  • このカスタム・ルールベースの変換が設定されたルールの名前

  • 変換ファンクションの所有者および名前

  • このカスタム・ルールベースの変換が1対1と1対多のどちらであるか

次の問合せを実行すると、前述の情報が表示されます。

COLUMN RULE_OWNER HEADING 'Rule Owner' FORMAT A20
COLUMN RULE_NAME HEADING 'Rule Name' FORMAT A15
COLUMN TRANSFORM_FUNCTION_NAME HEADING 'Transformation Function' FORMAT A30
COLUMN CUSTOM_TYPE HEADING 'Type' FORMAT A11
 
SELECT RULE_OWNER, RULE_NAME, TRANSFORM_FUNCTION_NAME, CUSTOM_TYPE
  FROM DBA_STREAMS_TRANSFORM_FUNCTION;

出力は次のようになります。

Rule Owner           Rule Name       Transformation Function        Type
-------------------- --------------- ------------------------------ -----------
STRMADMIN            DEPARTMENTS31   "HR"."EXECUTIVE_TO_MANAGEMENT" ONE TO ONE
STRMADMIN            DEPARTMENTS32   "HR"."EXECUTIVE_TO_MANAGEMENT" ONE TO ONE
STRMADMIN            DEPARTMENTS33   "HR"."EXECUTIVE_TO_MANAGEMENT" ONE TO ONE

注意:

変換ファンクション名はVARCHAR2型にする必要があります。そうでない場合、TRANSFORM_FUNCTION_NAMEの値がNULLになります。DBA_STREAMS_TRANSFORM_FUNCTIONビューのVALUE_TYPE列には、変換ファンクション名の型が表示されます。