執行本文的示例前,請對當前的資料表的插入、刪除、更新等進行記錄,並把操作日期、操作者、原來資料、現在資料都作為備份,以便在當前備出現問題的時候能夠給以恢復。
注釋:最好把備份表放在不同的磁碟上或不同的資料庫中:
1、建立用於資料備份及操作記錄的表:
create table aud_prgamd1(
w_rowid varchar2(50), --行id
w_action varchar2(1), --操作
dttm date, --操作日期
opuser varchar2(30), --操作者
b$code varchar2(10), --原表中的code
a$code varchar2(10), --現表中的code
b$fty varchar2(10), --原表中的fty
a$fty varchar2(10) –現表中的fty
);
2、建立實際資料表:
create table prgamd
(code varchar2(20),
fty varchar2(20)
)
3、建立自動備份觸發器:
create or replace trigger aud_prgamd_trigger
after insert or update or delete
on prgamd
for each row
declare
v_rowid varchar2(50);
v_action varchar2(1);
v_opuser varchar(30):='unknow';
begin
if inserting then
v_rowid:=:new.rowid;
v_action:='i';
elsif updating then
v_rowid:=:new.rowid;
v_action:='u';
elsif deleting then
v_rowid:=:old.rowid;
v_action:='d';
end if;
v_opuser:=user;
insert into aud_prgamd1(
w_rowid,
w_action,
dttm,
opuser,
b$code,
b$fty,
a$code,
a$fty
)values(
v_rowid,
v_action,
sysdate,
v_opuser,
:old.code,
:old.fty,
:new.code,
:new.fty
);end;
注釋:以上的old表示被操作表中原來的資料指向,new表示被操作表中現在的資料指向。
4、操作測試:
insert into prgamd
values('x','x');
select * from aud_prgamd1
select * from prgamd;
update prgamd set code='m1' where fty='x';
commit;
oracle資料備份
資料庫備份 dmp檔名稱 log檔名稱 true 備份成功 false 備份失敗 public static bool dbbackup string dmpfilename,string logfilename 如果log檔案不存在,建立檔案並釋放 if file.exists logfilena...
oracle 資料備份
1 匯出別的主機上使用者的所有資訊 直接在dos下寫就可以了,不需要進入資料庫 匯出所有物件 表 儲存過程 檢視 觸發器.exp gjfj web gggggg wangzhan file d 1129.dmp full y compress y log d x exp.log 匯出固定表 exp ...
註解中用於 target的方法annotation
target target說明了annotation所修飾的物件範圍 annotation可被用於 packages types 類 介面 列舉 annotation型別 型別成員 方法 構造方法 成員變數 列舉值 方法引數和本地變數 如迴圈變數 catch引數 在annotation型別的宣告中使...