含义:job是oracle的一种对象,可以理解为定时执行的程序
目的:定时自动执行特定代码

照猫画虎--创建job

1、创建测试表JOB_TEST

 create table JOB_TEST(a date);

2、创建存储过程往测试表插入数据

create or replace procedure JOB_PRO_TEST as
begin
insert into JOB_TEST values(sysdate);
end;
/

3、创建job,名称jobtest,作用每分钟执行一次存储过程

variable jobtest number;
begin
dbms_job.submit(:jobtest,'JOB_PRO_TEST;',sysdate,'sysdate+1/1440',true);
end;
/

另一:

declare jobtest number;
begin
dbms_job.submit(
job =>jobtest ,
what=>'JOB_PRO_TEST;',
next_date => sysdate,
interval => 'sysdate+1/1440',
no_parse => true);
end;
/

job创建完成就已经运行了,不是一定要使用run

创建完成,job就开始工作了,自动插入,看看效果

4、手动运行jobtest

 begin
dbms_job.run(:jobtest);
end;
/

5.删除jjobtest

  begin
dbms_job.remove(:jobtest);
end;
/

另一

begin
dbms_job.remove(jobnomuber);
end;
/
jobnomuber为job号,通过查询可得

拦路虎--问题

问题一:





解决:
在pl/sql中,用variable声明job号名称,会抛出‘无效的sql语句’异常,采用declare关键字
问题二:




解决:
采用这样的方式::jobtest,注意那个冒号,可能会抛出‘并非所有变量都已绑定’异常,解决的方式:去掉那个冒号
问题三:
run或者remove时如果使用名称
例如
:jobtest 可能会抛出‘并非所有变量都已绑定’的异常;
去掉冒号直接用名称jobtest可能会抛出‘jobtest未被声明’





解决:

查询到你创建的job号,然后通过job号执行

select * from user_jobs;
select job from all_jobs;
PlSqlDev操作job

创建job


1、选择job文件夹,右键





2、点击新建





3、对应填写完成,可以点击“查看SQL”查看sql语句,确定无误后,点击“应用”即创建完成
4、此时,job文件夹下对应job创建完成,直接可见job号,右键可进行相关操作


知其所以然--知识理解

job
参数:是由Submit()过程返回的binary_ineger。工作号,唯一标识一个工作。
what参数:是将被执行的PL/SQL代码块。
next_date参数:指识何时将运行这个工作。
interval参数:何时这个工作将被重执行的频度。
no_parse参数:指示此工作在提交时或执行时是否应进行语法分析——TRUE 指示此PL/SQL代码在它第一次执行时应进行语法分析, 而FALSE指示本PL/SQL代码应立即进行语法分析。


描述 INTERVAL参数值,定义job的执行频率(有些有待验证)

每天午夜12点:'TRUNC(SYSDATE + 1)'
每天早上8点30分:'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点:'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点:'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点:'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6点10分:'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
每分钟执行:'TRUNC(sysdate,'mi') + 1/ (24*60)'或 'sysdate+1/1440'
每天的凌晨1点执行:'TRUNC(sysdate) + 1 +1/ (24)'
每周定时执行:每周一凌晨1点执行:'TRUNC(next_day(sysdate,'星期一'))+1/24'
每月定时执行:每月1日凌晨1点执行:'TRUNC(LAST_DAY(SYSDATE))+1+1/24'
每季度定时执行:每季度的第一天凌晨1点执行:'TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24'
每半年定时执行:每年7月1日和1月1日凌晨1点:'ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24'
每年定时执行:每年1月1日凌晨1点执行:'ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24'

学习参考地址:
http://blog.csdn.net/javaloveiphone/article/details/7947810
http://blog.csdn.net/truexf/article/details/1536730

http://blog.csdn.net/yzh54ak/article/details/5776130

【oracle】初学jobs的更多相关文章

  1. Disable Oracle Automatic Jobs

    By default, Oracle will run some maintance jobs every night. If you don't want to run those jobs, yo ...

  2. oracle创建jobs定时任务报错:ora-01008:not all variables bound

    原脚本(直接从jobs拖出生成的DDL): begin  sys.dbms_job.submit(job => :job,                      what => 'xx ...

  3. oracle创建jobs定时任务报错:PLS-00306: wrong number or types of arguments in call to 'JOB'

    原脚本: begin  sys.dbms_job.submit(job => job,                      what => 'xxx;',              ...

  4. 详细学习ORACLE JOBS

    一点一点学习jobs的各个方面比较长,比较烦,但是应该看完后会对jobs比较好的应用 一.学习准备 开始dbms_job学习前,先认识一个参数job_queue_processes a.job_que ...

  5. oracle 脚本创建数据库的相关文章,教程,源码

    学步园推荐专题: 关于oracle 脚本创建数据库的相关文章 文章标题 文章链接 文章简介 oracle命令行创建数据库的示例脚本 http://www.xuebuyuan.com/964527.ht ...

  6. Linux 6.x 下Oracle 11g R2 安装配置

    Oracle 11g R2 数据库安装硬件配置要求: 最小内存 1 GB of RAM 虚拟内存容量,这个oracle也有要求,不用担心此时的swap分区不够oracle的要求 .虚拟内存swap如何 ...

  7. Linux 前台 和 后台进程 说明

    一. 有关进程的几种常用方法 1.1  & 符号 在命令后面加上一个 & 符号,表示该命令放在后台执行,如: [oracle@singledb ~]$ crontab -l 20 17 ...

  8. 初学Oracle

    初学Oracle,遇到了很多的问题,下载的是Oracle11g,没有找到合适的管理工具,所以用sql plus 创建表,以下是本人总结的一些sql plus的命令行的命令,希望对大家有用 与sql p ...

  9. 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs

    3.2 Schedules调度Programs执行的Jobs 通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS ...

随机推荐

  1. HTML5列表

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. 服务端生成word并压缩打包下载

    所需工具 phpwrod 库 php_zip 扩展 下载phpword库,放到类加载路径. 安装php_zip扩展 下载地址 http://pecl.php.net/package/zip linux ...

  3. 在同一台机器上让Microsoft SQL Server 2000/ SQL2005/ SQL2008共存

    可能很多朋友都遇到想同时在自己的机器上运行Microsoft SQL Server 2000以及Microsoft SQL Server 2005和Microsoft SQL Server 2008. ...

  4. 远程连接sql server 数据库的方法

    今天找了半天,终于解决了如何从本地连接到远程sql server服务器的方法. 1.首先确保打开远程服务器的sql server配置管理器,确保TCP/IP协议开启 2.WebConfig的连接字符格 ...

  5. POJ 3264 Balanced Lineup 简单RMQ

    题目:http://poj.org/problem?id=3264 给定一段区间,求其中最大值与最小值的差. #include <stdio.h> #include <algorit ...

  6. js中实现页面跳转

    1.在本页中跳转到指定页面 1.window.location.href方式    <script language="javascript" type="text ...

  7. DJANGO:根据不同的环境,配置不同的SETTINGS文件,读取不同的DB,JENKINS,SALT配置

    今天撸了一次,实现如下: 1,新建配置目录,将不同的环境的SETTINGS.PY文件独立出来,并将各自环境引用的DB连接,JENKINS,SALT等参数都写在里面. DEMO: JENKINS = { ...

  8. Spring 定时任务 quartz的配置

    环境:我用的是spring3.2,其中引入了quartz-1.5.2.jar 先写一个任务类: package com.hlcg.common.task; public class TestJob { ...

  9. ANDROID_MARS学习笔记_S03_007_GoogleMap1

    一.简介 二.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <Linea ...

  10. 基于Delphi的Socket I/O模型全接触 good

    老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系.他们的信会被邮递员投递到他们的信箱里. 这和Socket模型非常类似.下面我就以老陈接收信件为例讲解Socket I/O模型. 一:se ...