sql >> データベース >  >> RDS >> Oracle

OracleStreamsのターゲットスキーマでのテーブルのドロップの防止

    OracleStreamsで特定のDDLコマンドの実行を停止する例を以下に示します。この例では、OracleStreams.1のターゲットスキーマでDropTableコマンドを無視する方法を学習します。ストリーム管理者のcredentials.connSTRMADMIN/ STREAM@TARGETを使用してターゲットデータベースに接続します

    2.ドロップテーブルステートメントを処理するプロシージャを作成します。

    プロシージャの作成または置換
    IGNORE_DROP_TABLE(in_any 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.適用プロセスを変更します。

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

    これで、「DropTable」を除くすべてのDDLステートメントがターゲットデータベースで実行されます。

    1. 日付範囲から日を生成する

    2. 重複する行を削除します(重複するすべての行を削除しないでください)

    3. 予約されたSQLキーワードで名前が付けられたテーブル列を処理する方法は?

    4. Oracleデータベースで特定の列名のテーブルを検索しますか?