sql >> Database >  >> RDS >> Oracle

Het voorkomen van een drop-table bij het doelschema in Oracle Streams

Hieronder wordt een voorbeeld gegeven om de uitvoering van een bepaalde DDL-opdracht in Oracle Streams. In dit voorbeeld leert u hoe u de opdracht Drop Table bij het doelschema in Oracle Streams.1 negeert. Maak verbinding met de doeldatabase met de beheerdersreferenties voor streams.conn STRMADMIN/STREAM@TARGET

2. Creëer een procedure om het drop table statement af te handelen.

maak of vervang procedure
IGNORE_DROP_TABLE (in_elke IN SYS.ANYDATA
)

is
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. Wijzig het proces Toepassen.

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

Nu worden alle DDL-instructies behalve "Drop Table" uitgevoerd in de doeldatabase.

  1. Bindvariabelen gebruiken met dynamische SELECT INTO-clausule in PL/SQL

  2. alfa en numeriek splitsen met sql

  3. Wanneer moeten we NVARCHAR/NCHAR gebruiken in plaats van VARCHAR/CHAR in SQL Server?

  4. Kan iemand uitleggen wat de MERGE-instructie echt doet in Oracle?