关于pl/sql中的jobs的用法 像大家请教一下pl/sql中的jobs的用法???jobs是做什么用的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定时执行某些任务的.可以参照dbms_job包. job 是用来定时运行程序的如果不会用可能用PL/SQL DEVELOPER设定就行了, 就像是mssql 里面的作业 定时运行某个sql脚本 嗯,谢谢大家了,我在到网上找找job具体怎么用······ 这两个都是高手啊,我刚让人家帮忙解决了关于job的停止与删除问题 参考下面的.1.dbms_job.submit 创建jobSQL> create or replace procedure resch as 2 begin 3 delete from emp where empno = 2; 4 COMMIT; 5 delete from emp where empno = 3; 6 COMMIT; 7 delete from emp where empno = 4; 8 COMMIT; 9 end; 10 / Procedure created SQL> set serveroutput onSQL> SQL> DECLARE 2 v_job NUMBER(20); 3 BEGIN 4 dbms_job.submit(v_job,'begin resch; end;',SYSDATE,'SYSDATE+1/24/60'); 5 dbms_output.put_line(v_job); 6 END; 7 / 70 PL/SQL procedure successfully completed SQL> select * from dba_jobs t where t.JOB=70; JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT NLS_ENV MISC_ENV INSTANCE---------- ------------------------------ ------------------------------ ------------------------------ ----------- ---------------- ----------- ---------------- ----------- ---------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ---------- 87 SCOTT SCOTT SCOTT 2010-8-25 1 17:09:25 0 N SYSDATE+1/24/60 begin resch; end; NLS_LANGUAGE='SIMPLIFIED CHINESE' NLS_TERRITORY='CHINA' NLS_CURRENCY='¥' NLS_ISO 0102000200000000 0 SQL>2.dbms_job.broken 停止job或唤醒jobSQL> exec dbms_job.broken(job => 87,broken => true,next_date => sysdate);--停止job PL/SQL procedure successfully completed SQL> commit; Commit complete SQL> exec dbms_job.broken(job => 87,broken => false,next_date => sysdate);--唤醒job PL/SQL procedure successfully completed SQL> commit 2 ; Commit complete SQL> 3.dbms_job.remove 删除jobSQL> exec dbms_job.remove(job => 87);--删除job PL/SQL procedure successfully completed SQL> commit; Commit complete SQL> select * from dba_jobs t where t.JOB=87;--已无数据 JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT NLS_ENV MISC_ENV INSTANCE---------- ------------------------------ ------------------------------ ------------------------------ ----------- ---------------- ----------- ---------------- ----------- ---------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ---------- SQL> 表合并问题 数据库设计问题 open CURSOR 的的问题 关于ORACLE 插入Long 问题! UE使用问题 求助:Proc程序频繁连接Oracle 数据库会对Oracle产生什么影响?对操作系统产生什么影响? 关于SQL语句的优化规则 oracle安装求助 一个存储过程,本身就是一个事物吗? 初学Oracle对其的理解,请指点 A存储过程调用B存储过程,要得到B存储过程的某个指定输出参数,怎么做? 求大师优化该SQL
如果不会用可能用PL/SQL DEVELOPER设定就行了,
就像是mssql 里面的作业 定时运行某个sql脚本
1.dbms_job.submit 创建job
SQL> create or replace procedure resch as
2 begin
3 delete from emp where empno = 2;
4 COMMIT;
5 delete from emp where empno = 3;
6 COMMIT;
7 delete from emp where empno = 4;
8 COMMIT;
9 end;
10 /
Procedure created
SQL> set serveroutput on
SQL>
SQL> DECLARE
2 v_job NUMBER(20);
3 BEGIN
4 dbms_job.submit(v_job,'begin resch; end;',SYSDATE,'SYSDATE+1/24/60');
5 dbms_output.put_line(v_job);
6 END;
7 /
70
PL/SQL procedure successfully completed
SQL> select * from dba_jobs t where t.JOB=70;
JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT NLS_ENV MISC_ENV INSTANCE
---------- ------------------------------ ------------------------------ ------------------------------ ----------- ---------------- ----------- ---------------- ----------- ---------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ----------
87 SCOTT SCOTT SCOTT 2010-8-25 1 17:09:25 0 N SYSDATE+1/24/60 begin resch; end; NLS_LANGUAGE='SIMPLIFIED CHINESE' NLS_TERRITORY='CHINA' NLS_CURRENCY='¥' NLS_ISO 0102000200000000 0
SQL>
2.dbms_job.broken 停止job或唤醒jobSQL> exec dbms_job.broken(job => 87,broken => true,next_date => sysdate);--停止job
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> exec dbms_job.broken(job => 87,broken => false,next_date => sysdate);--唤醒job
PL/SQL procedure successfully completed
SQL> commit
2 ;
Commit complete
SQL>
3.dbms_job.remove 删除job
SQL> exec dbms_job.remove(job => 87);--删除job
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> select * from dba_jobs t where t.JOB=87;--已无数据
JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT NLS_ENV MISC_ENV INSTANCE
---------- ------------------------------ ------------------------------ ------------------------------ ----------- ---------------- ----------- ---------------- ----------- ---------------- ---------- ------ -------------------------------------------------------------------------------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ----------
SQL>