大家好,本人新进公司,在测试时,误删数据,忘记备份,现在正在痛苦ing,求助
 
描述:有A、B两张表A表中有a1,a2两个属性,B表中有b1,b2两个属性
      其中a1,与b1中的值一样,但是现在我删错数据了,B表中的b1属性被删除了,我该怎么添加进去
      不好告诉我先查询A表然后一行一行向B表中添加,因为B表中数据非常大,我想问问有没有好的oracle语句,先谢了

解决方案 »

  1.   

    ORACLE闪回开了么??如果开了,建一个上个时间点的表,
      

  2.   

    不懂,因为我是菜鸟,但是我觉得应该有sql语句能实现这个操作,但是我还没有想出来,所以出来问问大家
      

  3.   

    如果只是删除掉一些数据的话,并且时间间隔不是太久已用时间:  00: 00: 00.01
    SQL> flashback table jym_flash_test to timestamp to_timestamp('03/09/2011 09:46:00','mm/dd/yyyy hh24
    :mi:ss');
    flashback table jym_flash_test to timestamp to_timestamp('03/09/2011 09:46:00','mm/dd/yyyy hh24:mi:s
                    *
    第 1 行出现错误:
    ORA-08189: 因为未启用行移动功能, 不能闪回表
    已用时间:  00: 00: 00.03
    SQL> alter table jym_flash_test enable row movement;表已更改。已用时间:  00: 00: 00.09
    SQL> flashback table jym_flash_test to timestamp to_timestamp('03/09/2011 09:46:00','mm/dd/yyyy hh24
    :mi:ss');闪回完成。已用时间:  00: 00: 00.93
    SQL> select * from jym_flash_test;        ID
    ----------
             1如果表删除了的话 flashback table a to before drop;
      

  4.   

    没有备份,你还想用sql回复啊,这个功能应该还在开发啊之中吧,
     用闪回功能吧
      

  5.   

    oracle 10g 以上的版本提供了flashback
    也有了回收站的概念,drop 的表,只要不purge的表都会在回收站中找到的。
    select * from user_recyclebin;
      

  6.   

    oracle 10g 前:
    select * from  table as of timestamp sysdate-9/24
    时间不要太久
      

  7.   

    不懂你们说的,我只想问问有没有sql语句能把B表中没有而A表中有的数据复制到B表中(注意A、B表中只有A.a1与B.b1时相同的,其它不同)
      

  8.   

    有A、B两张表A表中有a1,a2两个属性,B表中有b1,b2两个属性
      其中a1,与b1中的值一样,但是现在我删错数据了,B表中的b1属性被删除了,2表有关联?没有关联你怎么知道你的哪行A1数据 更新 到B1的哪一行?
      

  9.   

    你的意思是用sql语言恢复巴,你是开发人员 ,不是dba把你说的“B表中的b1属性被删除了”是不是b1的字段的值被清空了?
    就算是AB两表中a1,b1字段一模一样,现在也不能恢复了