IS any_instance CONSTANT BINARY_INTEGER := 0; PROCEDURE submit ( job OUT BINARY_INTEGER, what IN VARCHAR2, next_date IN DATE DEFAULT sysdate, interval IN VARCHAR2 DEFAULT 'null', no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT 0, force IN BOOLEAN DEFAULT FALSE ); FUNCTION background_process RETURN BOOLEAN; FUNCTION is_jobq RETURN BOOLEAN;END;用这个存储过程可以解决吗?
我不是要通过程序进行备份,只是让不会用Oracle的用户能通过简单界面进行备份向导操作。我说清楚没有?
any_instance CONSTANT BINARY_INTEGER := 0;
PROCEDURE submit ( job OUT BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE DEFAULT sysdate,
interval IN VARCHAR2 DEFAULT 'null',
no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT 0,
force IN BOOLEAN DEFAULT FALSE ); FUNCTION background_process RETURN BOOLEAN;
FUNCTION is_jobq RETURN BOOLEAN;END;用这个存储过程可以解决吗?
你的想法很难让人理解,
1、从你5分钟备份的要求来看数据是相当重要的,而相当重要的数据没有DBA来管理能行吗?
2、现在你只是让你的用户来直接管理备份工作,在备份的过程中随时随地可能会发生不可预知的错误(比如磁盘失败、表空间设置的问题、备份加锁问题等等),那万一失败由谁来处理?这么看这些数据也不是很重要。至于如何用前台在数据库中建立JOB,其实也是运行一段SQL,调用DBMS_JOB.SUBMIT()过程,请见下例:
VARIABLE jobno NUMBER;
BEGIN
DBMS_JOB.SUBMIT(:jobno,
'dbms_ddl.analyze_object(''TABLE'',
''dquon'', ''accounts'',
''ESTIMATE'', NULL, 50);',
SYSDATE, 'SYSDATE + 1');
COMMIT;
END;
/
Statement processed.
PRINT jobno
JOBNO
----------
14144你在前台submit一个job,让这个job定时执行host exp是可行的,但是我还没想通由谁来监视job的执行状况、或者在异常情况下终止/删除job,还能让用户自己做吗?