烈火网(LieHuo.Net)教程 利用ORACLE存储过程与JOB结合实现对数据表自动备份。
1、创建存储过程
create or replace procedure data_auto_backup as
v_tablename varchar2(200);
v_year varchar2(10);
v_month varchar2(10);
v_bakdate varchar2(50);
v_maxdate date;
v_tablecount integer;
v_recordcount integer;
begin
select max(t.field1) - 30 into v_maxdate from table1 t;
v_year := to_char(v_maxdate,'yyyy');
v_month := to_char(v_maxdate,'MM');
v_bakdate := to_char(v_maxdate,'yyyy-MM-dd');
-- 检查将要使用的年月表是否存在
v_tablename := 'table1' || v_year || v_month;
SELECT COUNT(TABLE_NAME) INTO v_tablecount FROM USER_TABLES ut WHERE ut.table_name = v_tablename;
if v_tablecount>0 then
dbms_output.put_line('该表存在!');
else begin
dbms_output.put_line('该表不存在或当前用户无权