|
|
[php]
-- 01 Create a rule set
BEGIN
DBMS_RULE_ADM.CREATE_RULE_SET(rule_set_name => 'STRMADMIN.VONGATES_RULES',
evaluation_context => 'SYS.STREAMS$_EVALUATION_CONTEXT');
END;
-- 02 Create a rule
BEGIN
DBMS_RULE_ADM.CREATE_RULE(rule_name => 'STRMADMIN.DEPT_DML',
condition => ' :dml.get_object_owner() = ''SCOTT'' AND ' ||
' :dml.get_object_name() = ''DEPT'' AND ' ||
' :dml.get_command_type()!= ''DELETE'' ');
END;
-- drop rule
BEGIN
DBMS_RULE_ADM.drop_rule(rule_name => 'STRMADMIN.DEPT_DML');
END;
-- 3 Assign the rule to the rule set
BEGIN
DBMS_RULE_ADM.ADD_RULE(rule_name => 'STRMADMIN.DEPT_DML',
rule_set_name => 'STRMADMIN.VONGATES_RULES');
END;
--4 Associate the rule set with the capture process
BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES(table_name => 'SCOTT.DEPT',
streams_type => 'CAPTURE',
streams_name => 'capture_simp',
queue_name => 'strmadmin.streams_queue',
include_dml => TRUE,
include_ddl => TRUE,
source_database => 'gates');
END;
BEGIN DBMS_CAPTURE_ADM.ALTER_CAPTURE(capture_name => 'capture_simp',
rule_set_name => 'STRMADMIN.VONGATES_RULES');
END;
declare
v_scn number;
begin
v_scn := dbms_flashback.get_system_change_number();
dbms_apply_adm.set_table_instantiation_scn@clone(source_object_name => 'scott.dept',
source_database_name => 'gates',
instantiation_scn => v_scn);
end;
BEGIN
DBMS_CAPTURE_ADM.START_CAPTURE(capture_name => 'capture_simp');
END;
01 Create a rule set
SQL> BEGIN
2 DBMS_RULE_ADM.CREATE_RULE_SET(
3 rule_set_name => 'STRMADMIN.VONGATES_RULES',
4 evaluation_context => 'SYS.STREAMS$_EVALUATION_CONTEXT');
5 END;
6 /
PL/SQL procedure successfully completed
SQL>
SQL> BEGIN
2 DBMS_RULE_ADM.CREATE_RULE(rule_name => 'STRMADMIN.DEPT_DML',
3 condition => ' :dml.get_object_owner() = "SCOTT" AND ' ||
4 ' :dml.get_object_name() = "DEPT" AND ' ||
5 ' :dml.get_command_type()!= "DELETE" ');
6 END;
7 /
PL/SQL procedure successfully completed
SQL>
SQL> BEGIN
2 DBMS_RULE_ADM.ADD_RULE(
3 rule_name => 'STRMADMIN.DEPT_DML',
4 rule_set_name => 'STRMADMIN.VONGATES_RULES');
5 END;
6 /
PL/SQL procedure successfully completed
SQL>
SQL> BEGIN
2 DBMS_STREAMS_ADM.ADD_TABLE_RULES(table_name => 'SCOTT.DEPT',
3 streams_type => 'CAPTURE',
4 streams_name => 'capture_simp',
5 queue_name => 'strmadmin.streams_queue',
6 include_dml => TRUE,
7 include_ddl => FALSE,
8 source_database => 'gates');
9 END;
10 /
PL/SQL procedure successfully completed
SQL>
SQL> BEGIN DBMS_CAPTURE_ADM.ALTER_CAPTURE(capture_name => 'capture_simp',
2 rule_set_name => 'STRMADMIN.VONGATES_RULES');
3 END;
4 /
PL/SQL procedure successfully completed
SQL>
[/php] |
|