创建ORACLE JOB
来源:互联网 发布:mysql like带_字符 编辑:程序博客网 时间:2024/05/02 04:31
http://www.cnblogs.com/conqueror/archive/2010/10/10/1847085.html
oracle job简介
主要的使用情景
定时在后台执行相关操作:如每天晚上0点将一张表的数据保存到另一张表中,2:定时备份数据库等
熟化说万事开头难,这里我只简单记述一个创建一个简单的job
步骤如下:
1、创建一张表g_test
create table G_TEST
(
ID NUMBER(12),
C_DATE DATE
)
2、创建一个sequence
create sequence G_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 141
increment by 1
cache 20;
3、创建一个存储过程
create or replace procedure prc_g_test is
begin
insert into g_test values(g_seq.nextval,sysdate);
end prc_g_test;
4、创建job,
使用Submit()过程,工作被正常地计划好。
这个过程有五个参数:job、what、next_date、interval与no_parse。
PROCEDURE Submit ( job OUT binary_ineger,
What IN varchar2,
next_date IN date,
interval IN varchar2,
no_parse IN booean:=FALSE)
job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
what参数是将被执行的PL/SQL代码块。
next_date参数指识何时将运行这个工作。
interval参数何时这个工作将被重执行。
no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE
指示此PL/SQL代码在它第一次执行时应进行语法分析,
而FALSE指示本PL/SQL代码应立即进行语法分析。
在command window窗口中执行下面脚本
variable job1 number;
begin
sys.dbms_job.submit(job => :job,
what => 'prc_g_test;',
next_date => to_date('22-10-2008 10:06:41', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1/1440');--每天1440分钟,即一分钟运行test过程一次
commit;
end;
/
----------------------------------------------------------------------------------
在plSQL中我的做法是:
declare
job number;
begin
sys.dbms_job.submit(job,'prc_g_test;',sysdate,'sysdate+1/1440');
end;
----------------------------------------------------------------------------------
5、查看创建的job
查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:
select * from dba_jobs
6、运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
SQL> begin
2 dbms_job.run(:job);
3 end;
4 /
----------------------------------------------------------------------------------
在plSQL中我的做法是:
begin
dbms_job.run(3017);
end;
----------------------------------------------------------------------------------
7、删除JOB
SQL> begin
2 dbms_job.remove(:job);--:job可以用dba_jobs.job的值代替如:1198
3 end;
4 /
说明:在sqlplus命令行直接定义变量要variable!!!!
---------------------------------------------
http://www.oschina.net/code/snippet_121156_8919
1. [代码][SQL]代码 跳至 [1] [全屏预览]
01
declare
02
job number;
03
begin
04
sys.dbms_job.submit(job,
05
'PRODUCT;'
,
--job要执行的工作(范例为要执行的存储过程)
06
to_date(
'23-02-2012'
,
'dd-mm-yyyy'
),
07
'TRUNC(SYSDATE+1)'
);
--执行job的周期(每天凌晨零点)
08
dbms_output.put_line(job);
09
end
;
10
/
11
12
13
job时间周期:
14
15
每天运行一次
'SYSDATE + 1'
16
每小时运行一次
'SYSDATE + 1/24'
17
每10分钟运行一次
'SYSDATE + 10/(60*24)'
18
每30秒运行一次
'SYSDATE + 30/(60*24*60)'
19
每隔一星期运行一次
'SYSDATE + 7'
- ORACLE的JOB创建
- oracle创建JOb小结
- Oracle创建job
- 创建ORACLE JOB
- 创建ORACLE JOB
- oracle job创建
- oracle创建job
- oracle job 创建 删除
- 创建ORACLE JOB
- 创建Oracle Job
- 创建ORACLE JOB
- 创建ORACLE JOB
- 创建ORACLE JOB
- Oracle-创建Job
- oracle动态创建job
- Oracle Job创建
- 创建ORACLE JOB
- 创建ORACLE JOB
- android系统下崩溃时发送报告的一些文章
- 用word2vec 跑搜狗SogouCS语料 - 大小4G | 6.8 亿词长 | 57万词汇
- 一键还原——MVC3中的HTML辅助方法
- 消息队列
- Python小实例第一天
- 创建ORACLE JOB
- 南方广西你给放
- linux:RAID(磁盘阵列)笔记
- 1069错误(由于登录失败而无法启动服务)解决方法 db2服务
- Map集合中使用叠代器Iterator
- 设置tomcat jdk内存
- qt for android
- Codeforces 300C Beautiful Numbers 乘法逆元
- ios 如何跳转到系统(通用)页面