写个存储过程和作业 关于作业: DBMS_JOB - SUBMIT Procedure (Oracle8i)This procedure submits a new job. It chooses job from the sequence sys.jobseq. SyntaxDBMS_JOB.SUBMIT ( job OUT BINARY_INTEGER, 作业号,来自序列SYS.JOBSEQ what IN VARCHAR2, 存储过程名 next_date IN DATE DEFAULT sysdate, 下一次执行日期,缺省为SYSDATE interval IN VARCHAR2 DEFAULT 'null', 执行间隔,以天为单位,缺省为空 no_parse IN BOOLEAN DEFAULT FALSE, 是否每次执行时都分析存储过程,缺省为否 instance IN BINARY_INTEGER DEFAULT any_instance, 制定执行作业的实例 force IN BOOLEAN DEFAULT FALSE); 若执行作业的实例未运行,是否强制使用其他实例执行。缺省为否Parameter Description job Number of the job being run. what PL/SQL procedure to run. next_date Next date when the job will be run. interval Date function that calculates the next time to run the job. The default is NULL. This must evaluate to a either a future point in time or NULL. no_parse A flag. The default is FALSE. If this is set to FALSE, then Oracle parses the procedure associated with the job. If this is set to TRUE, then Oracle parses the procedure associated with the job the first time that the job is run. For example, if you want to submit a job before you have created the tables associated with the job, then set this to TRUE. instance When a job is submitted, specifies which instance can run the job. force If this is TRUE, then any positive integer is acceptable as the job instance. If this is FALSE (the default), then the specified instance must be running; otherwise the routine raises an exception. Usage NotesThe parameters instance and force are added for job queue affinity. Job queue affinity gives users the ability to indicate whether a particular instance or any instance can run a submitted job. ExampleThis submits a new job to the job queue. The job calls the procedure DBMS_DDL.ANALYZE_OBJECT to generate optimizer statistics for the table DQUON.ACCOUNTS. The statistics are based on a sample of half the rows of the ACCOUNTS table. The job is run every 24 hours: 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
用作业job,定时运行存储过程。
SQL> create table aa(a number);Table created create procedure pro as begin update aa set a=0; commit; end; / declare jobno number; begin dbms_job.submit(jobno,'pro;',sysdate,'trunc(sysdate)+1'); commit; end; /
关于作业:
DBMS_JOB - SUBMIT Procedure (Oracle8i)This procedure submits a new job. It chooses job from the sequence sys.jobseq. SyntaxDBMS_JOB.SUBMIT (
job OUT BINARY_INTEGER, 作业号,来自序列SYS.JOBSEQ
what IN VARCHAR2, 存储过程名
next_date IN DATE DEFAULT sysdate, 下一次执行日期,缺省为SYSDATE
interval IN VARCHAR2 DEFAULT 'null', 执行间隔,以天为单位,缺省为空
no_parse IN BOOLEAN DEFAULT FALSE, 是否每次执行时都分析存储过程,缺省为否
instance IN BINARY_INTEGER DEFAULT any_instance, 制定执行作业的实例
force IN BOOLEAN DEFAULT FALSE); 若执行作业的实例未运行,是否强制使用其他实例执行。缺省为否Parameter Description job Number of the job being run.
what PL/SQL procedure to run.
next_date Next date when the job will be run.
interval Date function that calculates the next time to run the job. The default is NULL. This must evaluate to a either a future point in time or NULL.
no_parse A flag. The default is FALSE. If this is set to FALSE, then Oracle parses the procedure associated with the job. If this is set to TRUE, then Oracle parses the procedure associated with the job the first time that the job is run. For example, if you want to submit a job before you have created the tables associated with the job, then set this to TRUE.
instance When a job is submitted, specifies which instance can run the job.
force If this is TRUE, then any positive integer is acceptable as the job instance. If this is FALSE (the default), then the specified instance must be running; otherwise the routine raises an exception. Usage NotesThe parameters instance and force are added for job queue affinity. Job queue affinity gives users the ability to indicate whether a particular instance or any instance can run a submitted job. ExampleThis submits a new job to the job queue. The job calls the procedure DBMS_DDL.ANALYZE_OBJECT to generate optimizer statistics for the table DQUON.ACCOUNTS. The statistics are based on a sample of half the rows of the ACCOUNTS table. The job is run every 24 hours: 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
create procedure pro
as
begin
update aa set a=0;
commit;
end;
/
declare
jobno number;
begin
dbms_job.submit(jobno,'pro;',sysdate,'trunc(sysdate)+1');
commit;
end;
/
可以用to_date()来指定一个时间吧