STREAMS筆記(8) rule - 自定義

westzq1984發表於2013-06-09
有一些事情,是handler做不到的,需要自定義rule,像排除特定型別的DDL,特定種類的物件的DDL不捕獲。這是時候需要自定義RULE

如何排除一種DDL操作

BEGIN

DBMS_STREAMS_ADM.ADD_SCHEMA_RULES(

schema_name       => 'HR',

streams_type      => 'capture',

streams_name      => 'strm01_capture',

queue_name        => 'strmadmin.STREAMS_QUEUE',

include_dml       => false,

include_ddl       => true,

include_tagged_lcr => false,

source_database   => 'SOURCE.IDC.ORACLE.COM',

inclusion_rule    => FALSE, -- False means a negative ruleset is added.

and_condition         => '(:ddl.get_command_type() = ''ALTER TABLE'')' -- quotes around ''ALTER TABLE''

);

END;

/

 

如何排除特定型別物件的操作

BEGIN

DBMS_RULE_ADM.ALTER_RULE (

rule_name => 'HR42',

condition => '(:ddl.get_object_owner() = ''HR'' and :ddl.is_null_tag() = ''Y'' and :ddl.get_object_type() != ''SYNONYM'') ',

evaluation_context => NULL);

END;

/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-763671/,如需轉載,請註明出處,否則將追究法律責任。

相關文章