当前位置:  数据库>oracle

Oracle如何恢复误删除的表的数据?

    来源: 互联网  发布时间:2017-04-02

    本文导语: 由于不小心误删除Oracle的表的数据,这些数据可能很重要,如何快速恢复,让主管不发现,可写一个存储过程,恢复删除数据的前某一时刻的数据 create or replace procedure pro_recover_del_data(ai_table_name in varchar2, --误删除的数据的表名...

由于不小心误删除Oracle的表的数据,这些数据可能很重要,如何快速恢复,让主管不发现,可写一个存储过程,恢复删除数据的前某一时刻的数据

create or replace procedure pro_recover_del_data(
ai_table_name in varchar2, --误删除的数据的表名称
ai_data_time in varchar2,  --恢复到删除数据前的某一时间点
ao_success out varchar2,   --是否成功 1:成功,0:失败
op_msg  out varchar2    --提示信息
)
Authid Current_User
is
    sqlstring varchar2(1000);
begin
 
  delete from RELA_T_RELASET;
    sqlstring:='insert into ' || ai_table_name || ' select * from '|| ai_table_name || ' as of timestamp to_timestamp('|| ''''
             || ai_data_time || '''' ||','||''''  || 'yyyy-mm-dd hh24:mi:ss '|| '''' || ')';
   execute IMMEDIATE sqlstring;
  commit;
  op_msg:='恢复成功!';
  ao_success:='1';
exception
  WHEN Dup_val_on_index THEN
         op_msg:='主键重复';
    WHEN Timeout_on_resource THEN
         op_msg:='等待资源超时';
    WHEN Invalid_CURSOR THEN
         op_msg:='无效的游标 ';
    WHEN Not_logged_on THEN
         op_msg:='没有连接到数据库';
    WHEN Login_denied THEN
         op_msg:='用户名/口令错误';
    WHEN No_data_found THEN
         op_msg:='SELECT INTO没有找到数据';
    WHEN Too_many_rows THEN
         op_msg:='SELECT INTO 返回多行数据';
    WHEN Zero_divide THEN
         op_msg:='试图被零除';
    WHEN Invalid_NUMBER THEN
         op_msg:='转换一个数字失败';
    WHEN Storage_error THEN
         op_msg:='内存不够引发的内部错误';
    WHEN Program_error THEN
         op_msg:='内部错误';
    WHEN Value_error THEN
         op_msg:='转换或截断错误';
    WHEN Rowtype_mismatch THEN
         op_msg:='主游标变量与 PL/SQL变量有不兼容行类型';
    WHEN CURSOR_already_OPEN THEN
         op_msg:='试图打开一个已存在的游标';
    WHEN ACCESS_INTO_NULL THEN
         op_msg:='试图访问一个空值';
    WHEN Collection_is_null THEN
         op_msg:='访问一个空集合';
    WHEN Subscript_outside_limit THEN
         op_msg:='试图将Exists 以外的集合( collection)方法应用于一个null pl/sql 表上或varray上';
    WHEN Subscript_beyond_count THEN
         op_msg:='对嵌套或varray 索引得引用大于集合中元素的个数';
    WHEN OTHERS THEN
         op_msg:='发生其它错误!';
    
     rollback;
        ao_success:='0';
end;




























































然后调用该存储过程即可。


    
 
 

您可能感兴趣的文章:

  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • 在linux 中如何删除oracle db 与卸载oracle.
  • Oracle删除表前判断表名是否存在若存在则删除
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  • oracle 彻底删除方法
  • Oracle删除后不能重新安装的解决方法
  • ubuntu如何彻底删除oracle
  • 彻底删除Oracle数据库的方法
  • Oracle删除当前用户下所有表的方法适用于有或没有删除权限
  • shell脚本操作oracle删除表空间、创建表空间、删除用户
  • 技巧分享 删除Oracle10G中的垃圾表
  • Oracle删除带有空格的表
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • Linux环境下完全删除Oracle
  • oracle怎么删除用户提供解决方案
  • linux下如何卸载oracle?直接删除就可以么??
  • oracle单库彻底删除干净的执行步骤
  • 删除Oracle中奇怪的表名称BIN$…的方法
  • linux oracle数据库删除操作指南
  • oracle数据库添加或删除一列的sql语句
  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • Oracle数据库备份和恢复工具 RMan
  • oracle备份恢复的具体方法
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle11g备份和恢复功能的提高
  • 实战Oracle数据库备份与恢复
  • Oracle数据库冷备份的异地恢复
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • ORACLE数据库常用字段数据类型介绍
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 卸载oracle数据库 iis7站长之家
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • Oracle收购TimesTen 提高数据库软件性能
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • 紧急求救:对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 卸载oracle数据库
  • 紧急求救:jsp对Oracle数据库中long 型数据进行模糊查询 如何查?
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • ORACLE日期相关操作
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3