查看應用進程的規則集。
SQL> select APPLY_NAME,RULE_SET_NAME from dba_apply;
APPLY_NAME RULE_SET_NAME
------------------------------ ------------------------------
APPLY_STANDY RULESET$_15
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
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
SQL> create table hz.t9 (id number,vname varchar2(20));
Table created
目標庫可以看到hz.t9表。
SQL> select * from hz.t9;
ID VNAME
---------- --------------------
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> 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
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
---------- --------------------
ID VNAME
---------- --------------------
SQL> select * from hz.t19;
ID V_NAME
---------- --------------------
1 guangzhou