oracle如何恢復(fù)被覆蓋的存儲(chǔ)過程
更新時(shí)間:2014年05月04日 17:35:12 作者:
如果你不小心覆蓋了之前的存儲(chǔ)過程,那得趕緊閃回,時(shí)長越長閃回的可能性越小,下面為大家介紹下恢復(fù)原理
如果你不小心覆蓋了之前的存儲(chǔ)過程,那得趕緊閃回,時(shí)長越長閃回的可能性越小。原理很簡單,存儲(chǔ)過程的定義就是數(shù)據(jù)字典,修改數(shù)據(jù)字典跟修改普通表的數(shù)據(jù)沒有區(qū)別,此時(shí)會(huì)把修改前的內(nèi)容放到undo中,我們可以根據(jù)這一點(diǎn)來進(jìn)行閃回,所以我說要盡快,要不然找不回來了。下面我們來做一個(gè)實(shí)驗(yàn):
1.在用戶TEST下14:31下建立存儲(chǔ)過程
create or replace procedure GG_TEST
as l_cnt number;
begin
for i in 1 .. 10000
loop
execute immediate 'select count(*) from t where x = ' || i into l_cnt;
end loop;
end;
2.在用戶TEST下在14:33下刪除存儲(chǔ)過程
drop procedure GG_TEST;
3.登錄到sys賬戶下
create table p_temp as
select *
from dba_source as of timestamp TO_TIMESTAMP('2014-05-04 14:33:00', 'YYYY-MM-DD HH24:MI:SS')
where TYPE = 'PROCEDURE'
And owner = 'TEST'
And Name = 'GG_TEST';
select text
from p_temp
where name like upper('%GG_TEST%')
and owner = 'TEST'
order by line;
TEXT
---------------------------------------------------------------------------
procedure GG_TEST
as l_cnt number;
begin
for i in 1 .. 10000
loop
execute immediate 'select count(*) from t where x = ' || i into l_cnt;
end loop;
end;
1.在用戶TEST下14:31下建立存儲(chǔ)過程
復(fù)制代碼 代碼如下:
create or replace procedure GG_TEST
as l_cnt number;
begin
for i in 1 .. 10000
loop
execute immediate 'select count(*) from t where x = ' || i into l_cnt;
end loop;
end;
2.在用戶TEST下在14:33下刪除存儲(chǔ)過程
復(fù)制代碼 代碼如下:
drop procedure GG_TEST;
3.登錄到sys賬戶下
復(fù)制代碼 代碼如下:
create table p_temp as
select *
from dba_source as of timestamp TO_TIMESTAMP('2014-05-04 14:33:00', 'YYYY-MM-DD HH24:MI:SS')
where TYPE = 'PROCEDURE'
And owner = 'TEST'
And Name = 'GG_TEST';
select text
from p_temp
where name like upper('%GG_TEST%')
and owner = 'TEST'
order by line;
TEXT
---------------------------------------------------------------------------
procedure GG_TEST
as l_cnt number;
begin
for i in 1 .. 10000
loop
execute immediate 'select count(*) from t where x = ' || i into l_cnt;
end loop;
end;
您可能感興趣的文章:
- oracle 存儲(chǔ)過程詳細(xì)介紹(創(chuàng)建,刪除存儲(chǔ)過程,參數(shù)傳遞等)
- Oracle存儲(chǔ)過程返回游標(biāo)實(shí)例詳解
- oracle 在一個(gè)存儲(chǔ)過程中調(diào)用另一個(gè)返回游標(biāo)的存儲(chǔ)過程
- Oracle存儲(chǔ)過程入門學(xué)習(xí)基本語法
- Oracle中 關(guān)于數(shù)據(jù)庫存儲(chǔ)過程和存儲(chǔ)函數(shù)的使用
- oracle數(shù)據(jù)庫中查看系統(tǒng)存儲(chǔ)過程的方法
- oracle 存儲(chǔ)過程和函數(shù)例子
- Oracle 存儲(chǔ)過程總結(jié) 二、字符串處理相關(guān)函數(shù)
- Oracle存儲(chǔ)過程和存儲(chǔ)函數(shù)創(chuàng)建方法(詳解)
- Oracle存儲(chǔ)過程和自定義函數(shù)詳解
- Oracle學(xué)習(xí)記錄之使用自定義函數(shù)和觸發(fā)器實(shí)現(xiàn)主鍵動(dòng)態(tài)生成
- oracle 存儲(chǔ)過程、函數(shù)和觸發(fā)器用法實(shí)例詳解
相關(guān)文章
oracle查詢重復(fù)數(shù)據(jù)和刪除重復(fù)記錄示例分享
oracle查詢重復(fù)數(shù)據(jù)和刪除重復(fù)記錄示例分享,大家參考使用吧2013-12-12
Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束詳解
事務(wù)是一個(gè)整體,這些操作要么全部執(zhí)行成功,要么全部不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Oracle中查看引起Session阻塞的2個(gè)腳本分享
這篇文章主要介紹了Oracle中查看引起Session阻塞的2個(gè)腳本分享,本文給出了2個(gè)腳本來查詢導(dǎo)致Session阻塞的原因,并給出Kill引起阻塞的Session方法,需要的朋友可以參考下2014-10-10
Oracle開發(fā)之分析函數(shù)(Rank, Dense_rank, row_number)
本文主要是對(duì)Oracle分析函數(shù)Rank, Dense_rank, row_number的使用法,通過這些函數(shù),我們可以對(duì)數(shù)據(jù)進(jìn)行排序和分組,需要的朋友可以參考下。2016-05-05
Oracle中scott表結(jié)構(gòu)與簡單查詢實(shí)例分析
這篇文章主要介紹了Oracle中scott表結(jié)構(gòu)與簡單查詢,實(shí)例分析Oracle查詢的相關(guān)技巧,需要的朋友可以參考下2015-04-04
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法...2007-03-03
mybatis?調(diào)用?Oracle?存儲(chǔ)過程并接受返回值的示例代碼
這篇文章主要介紹了mybatis?調(diào)用?Oracle?存儲(chǔ)過程?并接受返回值,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
oracle數(shù)據(jù)庫查看鎖表的sql語句整理
Oracle數(shù)據(jù)庫操作中,我們有時(shí)會(huì)用到鎖表查詢以及解鎖和kill進(jìn)程等操作,這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫查看鎖表的sql語句的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10

