Oracle
 sql >> Base de données >  >> RDS >> Oracle

Empêcher la suppression de la table au niveau du schéma cible dans Oracle Streams

Un exemple est donné ci-dessous pour arrêter l'exécution d'un schéma particulier Commande DDL dans Oracle Streams. Dans cet exemple, vous apprendrez à ignorer la commande Drop Table au niveau du schéma cible dans Oracle Streams.1. Connectez-vous à la base de données cible avec les informations d'identification de l'administrateur des flux.conn STRMADMIN/STREAM@TARGET

2. Créez une procédure pour gérer l'instruction drop table.

créer ou remplacer la procédure
IGNORE_DROP_TABLE (in_any IN SYS.ANYDATA
)

est
lcr SYS.LCR$_DDL_RECORD ;
rc PLS_INTEGER ;

commencer
rc :=in_any.GETOBJECT(lcr);

if lcr.GET_COMMAND_TYPE !='DROP TABLE'
then
lcr.execute();
end if;
END;
/

3. Modifiez le processus de candidature.

begin
dbms_apply_adm.alter_apply(
apply_name => 'STREAMS_APPLY',
ddl_handler => 'IGNORE_DROP_TABLE');
end;
/

Désormais, toutes les instructions DDL, à l'exception de "Drop Table", s'exécuteront dans la base de données cible.