• Oracle批量恢复drop操作删除的表、索引等对象


    /**********************************************************************
    查询Drop操作删除的对象select * from recyclebin ;
    单个对象(表、索引或是通过drop操作删除的其它对象)恢复
    flashback table(被删除的对象类型) 被删除的对象名称 to before drop
    ***********************************************************************/
    --Demo单张表恢复
    flashback table Table_XXX to before drop;
    -- 创建批量恢复表的存储过程
    create or replace procedure RecoveryOfTable is
    begin
    declare
    /***********************************************************************
    select 'flashback table '||a.original_name||' to before drop' from
    recyclebin a where a.operation = 'DROP' and a.type='TABLE'
    恢复其它类型对象请将flashback table 这里换为其它类型,
    type='相应的类型'可加更多条件限制,具体查询recyclebin
    ***********************************************************************/
    cursor cur_flashback is select 'flashback table '||a.original_name||' to before drop' from
    recyclebin a where a.operation = 'DROP' and a.type='TABLE';
    v_name varchar2(4000);
    begin
    open cur_flashback;
    fetch cur_flashback into v_name;
    while cur_flashback%found
    loop
    execute immediate v_name;
    fetch cur_flashback into v_name;
    end loop;
    dbms_output.put_line('恢复成功!');
    close cur_flashback;
    end;
    end;
    --执行存储过程(使用plsql操作时)
    begin
    RecoveryOfTable;
    end;
    --执行存储过程(使用SQL调用)
    execute RecoveryOfTable;

  • 相关阅读:
    如何优雅地删除 Linux 中的垃圾文件
    session:
    cookie:
    多对多表结构设计:
    接口测试:
    oracle基本笔记整理
    oracle基本笔记整理
    oracle基本笔记整理
    2016年寒假心得
    2016年寒假心得
  • 原文地址:https://www.cnblogs.com/MFLY/p/3467038.html
Copyright © 2020-2023  润新知