小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Oracle刪除表恢復(fù)

 goldbomb 2011-12-24
恢復(fù)當(dāng)天刪除了表而沒(méi)有記住表的名稱
 
存儲(chǔ)過(guò)程如下:  
  create or replace procedure proc_databack (deletetime in varchar2)  
  as 
  --把當(dāng)天已經(jīng)刪除的信息查詢出來(lái)放入游標(biāo)  
  cursor mycursor is(select  object_name   from recyclebin  where droptime like deletetime);  
  temp_emp    varchar2(2000);  
  vflash_back   varchar2(2000);  
  begin 
    open mycursor;  
    loop  
    fetch mycursor  into temp_emp;  
    exit when mycursor%notfound;  
   --構(gòu)建恢復(fù)語(yǔ)句  
    vflash_back:='flashback table "'||temp_emp||'"  to  before drop';  
     --循環(huán)恢復(fù)被刪除的表,直到全部恢復(fù)完成  
    execute immediate vflash_back;  
    end loop;  
    close mycursor;  
end;  
 
--調(diào)用存儲(chǔ)過(guò)程  
--比如今天是2011-12-02,那么寫法如下:  
/*  
declare 
time varchar2(20);  
begin 
time:='2011-12-02%';  
proc_databack (time);  
end;  
*/ 
 
1.
表查詢閃回
create table xcp as (select * from b_za_bzdzkxx);
select * from xcp;
select count(1) from xcp;--22001
select count(1) from xcp t where t.dzbh like '510521%';--7011
delete from xcp t where t.dzbh like '510521%';
select count(1) from xcp;--14990
--查找指定時(shí)間點(diǎn)前的數(shù)據(jù)
select count(1) from xcp as of timestamp to_timestamp('2011-12-23 10:49:30','yyyy-MM-dd hh24:mi:ss');--22001

select * from xcp for update;--添加一條記錄
select count(1) from xcp;--14991

--恢復(fù)指定時(shí)間點(diǎn)的前delete數(shù)據(jù)(將刪除恢復(fù)時(shí)間點(diǎn)后面的數(shù)據(jù))

alter table xcp enable row movement;--啟動(dòng)的行移動(dòng)功能
flashback table xcp to timestamp to_timestamp('2011-12-23 10:49:30,'yyyy-MM-dd hh24:mi:ss');
select count(1) from xcp;--22001

--恢復(fù)指定時(shí)間點(diǎn)的前delete數(shù)據(jù),并保留恢復(fù)時(shí)間點(diǎn)后面的數(shù)據(jù)

create table xcp2 as (select * from xcp t where t.createdtime>to_timestamp('2011-12-23 10:49:30','yyyy-MM-dd hh24:mi:ss'));
select * from xcp2;--臨時(shí)表
alter table xcp enable row movement;--啟動(dòng)的行移動(dòng)功能
flashback table xcp to timestamp to_timestamp('2011-12-23 10:49:30,'yyyy-MM-dd hh24:mi:ss');
select count(1) from xcp;--22001
insert into xcp select * from xcp2 --將臨時(shí)表的數(shù)據(jù)再插入到源表
select count(1) from xcp;--22002


2.刪除
閃回[10g+]
    刪除閃回為刪除oracle 10G提供了一個(gè)數(shù)據(jù)庫(kù)安全機(jī)制,當(dāng)用戶刪除一個(gè)表時(shí),oracle 10G會(huì)將該表放到回收站中,回收站中的對(duì)象一直會(huì)保留,直到用戶決定永久刪除它們或出現(xiàn)表空間的空間不足時(shí)才會(huì)被刪除?;厥照臼且粋€(gè)虛擬容器,用于存儲(chǔ)所有被刪除的對(duì)象。數(shù)據(jù)字典user_tables中的列dropped表示被刪除的表,查詢方法如下:
select table_name,dropped from user_tables;
--設(shè)置數(shù)據(jù)庫(kù)是否啟用回收站
alert session set recyclebin = off;
--查詢回收站對(duì)象
select * from recyclebin;
select * from user_recyclebin;
select * from dba_recyclebin;


drop table xcp;
select count(1) from xcp;--0
--恢復(fù)drop的表
flashback table xcp to before drop;
select count(1) from xcp;--22001

如果不知道原表名,可以直接使用回收站中的名稱進(jìn)行閃回..
flashback table "BIN$JiXyAUO4R+u3qNVfQK/Kiw==$0" to before drop;
在回收的同時(shí)可以修改表名
flashback table "
BIN$JiXyAUO4R+u3qNVfQK/Kiw==$0" to before drop rename to xcp1;

--真正刪除一個(gè)表,而不進(jìn)入回收站,可以在刪除表時(shí)增加purge選項(xiàng)
drop table xcp1 purge;
--也可以從回收站永久性刪除表
purge table xcp1;
--刪除當(dāng)前用戶回收站
purge recyclebin
--刪除全體用戶在回收站的資源
purge dba_resyclebin



3.數(shù)據(jù)庫(kù)閃口
[10g+]
    使用數(shù)據(jù)庫(kù)閃回功能,可以使數(shù)據(jù)庫(kù)回到過(guò)去某一狀態(tài),語(yǔ)法如下:
        sql: alter database flashback on;
        sql: flashback database to scn 46963;
        sql: flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-MM-dd hh24:mi:ss');

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多