sql >> Databasteknik >  >> RDS >> Oracle

Förhindra dropptabell vid målschema i Oracle Streams

Ett exempel ges nedan för att stoppa exekveringen av en viss DDL-kommando i Oracle Streams. I det här exemplet kommer du att lära dig hur du ignorerar kommandot Drop Table vid målschemat i Oracle Streams.1. Anslut till måldatabasen med strömmens adminuppgifter.conn STRMADMIN/STREAM@TARGET

2. Skapa en procedur för att hantera drop table-satsen.

skapa eller ersätt procedure
IGNORE_DROP_TABLE (i_any IN SYS.ANYDATA
)

är
lcr SYS.LCR$_DDL_RECORD;
rc PLS_INTEGER;

börja
rc :=in_any.GETOBJECT(lcr);

om lcr.GET_COMMAND_TYPE !='SLÄPP TABELL'

lcr.execute();
end if;
END;
/

3. Ändra appliceringsprocessen.

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

Nu kommer alla DDL-satser utom "Drop Table" att köras i måldatabasen.

  1. Bästa metoder för SQL varchar-kolumnlängd

  2. UTF-8 teckenkodningsstrider json_encode()

  3. Hur skapar man en katalog i Oracle?

  4. ScaleGrid PostgreSQL på VMware Cloud Infrastructure