Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verhindern des Löschens einer Tabelle im Zielschema in Oracle Streams

Unten finden Sie ein Beispiel, um die Ausführung eines bestimmten Schemas zu stoppen DDL-Befehl in Oracle Streams. In diesem Beispiel erfahren Sie, wie Sie den Drop Table-Befehl im Zielschema in Oracle Streams.1 ignorieren. Verbinden Sie sich mit der Zieldatenbank mit den Anmeldedaten des Streams-Administrators. conn STRMADMIN/STREAM@TARGET

2. Erstellen Sie eine Prozedur, um die Drop-Table-Anweisung zu handhaben.

Prozedur erstellen oder ersetzen
IGNORE_DROP_TABLE (in_any IN SYS.ANYDATA
)

ist
lcr SYS.LCR$_DDL_RECORD;
rc PLS_INTEGER;

begin
rc :=in_any.GETOBJECT(lcr);

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

3. Ändern Sie den Apply-Prozess.

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

Jetzt werden alle DDL-Anweisungen außer "Drop Table" in der Zieldatenbank ausgeführt.