stream 實現異構數據表的傳輸

 
查看應用進程的規則集。
SQL> select APPLY_NAME,RULE_SET_NAME from dba_apply;
 
APPLY_NAME                     RULE_SET_NAME
------------------------------ ------------------------------
APPLY_STANDY                   RULESET$_15

查看規則集對應的規則
SQL> select RULE_SET_NAME,RULE_NAME from user_rule_set_rules where rule_set_name='RULESET$_15';
 
RULE_SET_NAME                  RULE_NAME
------------------------------ ------------------------------
RULESET$_15                    HZ13
RULESET$_15                    HZ14
使用dbms_streams_adm 的rename 過程進程異構表的修改,看下面的例子:
SQL> begin
  2  dbms_streams_adm.rename_table(
  3  rule_name => 'HZ13',
  4  from_table_name => 'hz.t9',
  5  to_table_name => 'hz.t19',
  6  step_number => 0,
  7  operation => 'ADD');
  8  end;
  9  /
 
PL/SQL procedure successfully completed
 
SQL> begin
  2  dbms_streams_adm.rename_column(
  3  rule_name => 'HZ13',
  4  table_name => 'hz.t9',
  5  from_column_name => 'vname',
  6  to_column_name => 'v_name',
  7  value_type => '*',
  8  step_number => 0,
  9  operation => 'ADD');
 10  end;
 11  /
 
PL/SQL procedure successfully completed
原庫增加t9表:
SQL> create table hz.t9 (id number,vname varchar2(20));
 
Table created
目標庫可以看到hz.t9表。
SQL> select * from hz.t9;
 
        ID VNAME
---------- --------------------
目標庫建立hz.t19表,v_name字段和t9表的字段名不同了
SQL> create table hz.t19 (id,v_name) as select * from hz.t9;
 
Table created
查看目標庫的表記錄,現在都是沒有記錄的。
SQL> select * from hz.t19;
 
        ID V_NAME
---------- --------------------
 
SQL> select * from hz.t9;
 
        ID VNAME
---------- --------------------
 
原庫插入hz.t9表記錄。
SQL> insert into hz.t9 values(1,'guangzhou');
 
1 row inserted
 
SQL> commit;
 
Commit complete
目標庫再次查詢:可以看到t9表無記錄,t19表已經應用了原庫的記錄。
SQL> select * from hz.t9;
 
        ID VNAME
---------- --------------------

SQL> select * from hz.t19;
 
        ID V_NAME
---------- --------------------
         1 guangzhou

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章