時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
一.誤刪除數(shù)據(jù)表解決方案
1.刪除表中數(shù)據(jù)兩種方法
a. delete * from My_Table;
b. truncate table My_Table;
2.刪除整個(gè)表
drop table My_Table;
如何恢復(fù)不小心 Drop 掉的表呢,其實(shí) Oracle 中也有類似的 "回收站"
比如不小心刪除了表 My_Table
drop table My_Table;
這個(gè)時(shí)候再用SELECT語句查詢此表時(shí),將會(huì)提示表或視圖不存在.
但可以用如下語句查詢到這個(gè)表還在Oracle回收站中:
SELECT * FROM user_recyclebin WHERE original_name='My_Table';
那么現(xiàn)在就可以用如下語句進(jìn)行恢復(fù):
FLASHBACK TABLE My_Table TO BEFORE DROP;
二,誤刪表中數(shù)據(jù),通過閃回功能
select * from sys.smon_scn_time;
--scn 與時(shí)間的對(duì)應(yīng)關(guān)系
每隔5分鐘,系統(tǒng)產(chǎn)生一次系統(tǒng)時(shí)間標(biāo)記與scn的匹配并存入sys.smon_scn_time表。
select * from student as of scn 592258
就可以看到在這個(gè)檢查點(diǎn)的表的歷史情況。
然后我們恢復(fù)到這個(gè)檢查點(diǎn)
insert into student? select * from student as of scn 592258? where id not in (select id from student)
select * from v$transaction ---沒有提交的事務(wù)。
select * from flashback_transaction_query; ---回滾事務(wù)。 他有一列是??? undo_sql 得到他就可以回滾剛才提交的事務(wù)。
select * from FLASHBACK_TRANSACTION_QUERY a
where a.start_timestamp between to_date('2008-12-7 14:40:56','yyyy-MM-dd HH24:mi:ss') and
to_date('2008-12-7 14:59:56','yyyy-MM-dd HH24:mi:ss');
關(guān)鍵詞標(biāo)簽:Oracle誤操作,解決方案
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法