IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Oracle9i中如何恢复误删除数据?

Incessant 2009-10-11 22:22:55 累计浏览 3,580 次
本机暂存

    需求:

    说是9点的时候开发delete tbl_custtrade 表中的某些行,现在反悔了,想找回delete之前的数据

    select *

    from tbl_custtrade as of timestamp to_date(\'2007-5-16 9:00:00\', \'yyyy-mm-dd hh24:mi:ss\')。这个语句可以查到9时这个表的状态,9点之后所做的更改都不会体现到这个查询中,注意,只是能查到,并不代表这个表的现有值变了

    create table w_1

    as

    select *

     from tbl_custtrade as of timestamp to_date(\'2007-5-16 9:00:00\', \'yyyy-mm-dd hh24:mi:ss\') .找到你需要的数据并更新到tbl_custtrade表中去

    回溯时间:

    SQL> show parameter undo_retention

    NAME TYPE VALUE

    ------------------------------------ -------------------------------- ------------------------------

    undo_retention integer 21600

    SQL> select 21600/60/60 from dual ;

    21600/60/60

    -----------

     6 --可以查看当前6个小时表的状态值

    适用:因为是通过回滚段来恢复,所以只支持update、 delete、 insert、 不支持ddl操作

    这个语句可以防止在误操作的情况下进行表数据的快速恢复。天哪,写了一个不用思考、人人皆会的东西。。。

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,399)
  2. 如何查找消耗资源较大的SQL (累计阅读 15,211)
  3. 其实,文件也可以truncate (累计阅读 8,574)
  4. MariaDB常见问题FAQ (累计阅读 8,345)
  5. SQL vs NoSQL:数据库并发写入性能比拼 (累计阅读 8,004)
  6. Mysql的随机读取 (累计阅读 7,865)
  7. 索引与优化like查询 (累计阅读 7,338)
  8. 在百度的第一年 (累计阅读 6,922)
  9. SQL到NOSQL的思维转变 (累计阅读 6,848)
  10. SQL里是否可以使用JOIN (累计阅读 6,818)