sql >> Base de Datos >  >> RDS >> Oracle

Evitar la eliminación de tablas en el esquema de destino en Oracle Streams

A continuación se proporciona un ejemplo para detener la ejecución de un determinado Comando DDL en Oracle Streams. En este ejemplo, aprenderá cómo ignorar el comando Drop Table en el esquema de destino en Oracle Streams.1. Conéctese a la base de datos de destino con las secuencias admin credentials.conn STRMADMIN/STREAM@TARGET

2. Cree un procedimiento para manejar la declaración de la tabla desplegable.

crear o reemplazar procedimiento
IGNORE_DROP_TABLE (in_any IN SYS.ANYDATA
)

es
lcr SYS.LCR$_DDL_RECORD;
rc PLS_INTEGER;

comenzar
rc :=in_any.GETOBJECT(lcr);

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

3. Modifique el proceso de solicitud.

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

Ahora todas las instrucciones DDL excepto "Drop Table" se ejecutarán en la base de datos de destino.