【oracle】初学jobs
含义:job是oracle的一种对象,可以理解为定时执行的程序
 目的:定时自动执行特定代码
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;
/
拦路虎--问题
解决:
在pl/sql中,用variable声明job号名称,会抛出‘无效的sql语句’异常,采用declare关键字
问题二:
解决:
采用这样的方式::jobtest,注意那个冒号,可能会抛出‘并非所有变量都已绑定’异常,解决的方式:去掉那个冒号
run或者remove时如果使用名称
例如
:jobtest 可能会抛出‘并非所有变量都已绑定’的异常;
去掉冒号直接用名称jobtest可能会抛出‘jobtest未被声明’
解决:
select * from user_jobs;
select job from all_jobs;
创建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的更多相关文章
- Disable Oracle Automatic Jobs
		By default, Oracle will run some maintance jobs every night. If you don't want to run those jobs, yo ... 
- oracle创建jobs定时任务报错:ora-01008:not all variables bound
		原脚本(直接从jobs拖出生成的DDL): begin sys.dbms_job.submit(job => :job, what => 'xx ... 
- oracle创建jobs定时任务报错:PLS-00306: wrong number or types of arguments in call to 'JOB'
		原脚本: begin sys.dbms_job.submit(job => job, what => 'xxx;', ... 
- 详细学习ORACLE JOBS
		一点一点学习jobs的各个方面比较长,比较烦,但是应该看完后会对jobs比较好的应用 一.学习准备 开始dbms_job学习前,先认识一个参数job_queue_processes a.job_que ... 
- oracle 脚本创建数据库的相关文章,教程,源码
		学步园推荐专题: 关于oracle 脚本创建数据库的相关文章 文章标题 文章链接 文章简介 oracle命令行创建数据库的示例脚本 http://www.xuebuyuan.com/964527.ht ... 
- Linux 6.x 下Oracle 11g R2 安装配置
		Oracle 11g R2 数据库安装硬件配置要求: 最小内存 1 GB of RAM 虚拟内存容量,这个oracle也有要求,不用担心此时的swap分区不够oracle的要求 .虚拟内存swap如何 ... 
- Linux 前台 和 后台进程 说明
		一. 有关进程的几种常用方法 1.1 & 符号 在命令后面加上一个 & 符号,表示该命令放在后台执行,如: [oracle@singledb ~]$ crontab -l 20 17 ... 
- 初学Oracle
		初学Oracle,遇到了很多的问题,下载的是Oracle11g,没有找到合适的管理工具,所以用sql plus 创建表,以下是本人总结的一些sql plus的命令行的命令,希望对大家有用 与sql p ... 
- 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs
		3.2 Schedules调度Programs执行的Jobs 通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS ... 
随机推荐
- JQuery 分页实现
			JQuery分页实现 css: .liList0 { padding-left:5px;}.liList0 li { width:160px; float:left; display:inline ... 
- PHP分页初探 一个最简单的PHP分页代码实现
			PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ... 
- Redis的PHP操作手册(自用)
			String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 $redis-> ... 
- Echart..js插件渲染报错 data.length<1?
			问题 getJSON提交 返回数据正常,在传入参数进行序列化,渲染报表时报错 option.data.length < 1. 分析 1.可能情况一: . 可自己明明是getJSON()把渲染放 ... 
- Sass 编译的几种方法
			常常有人会问,使用 Sass 进行开发,那么是不是直接通过“<link>”引用“.scss”或“.sass”文件呢? 那么这里告诉大家,在项目中还是引用“.css”文件,Sass 只不过是 ... 
- “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法
			最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误: “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法.如图: 找了好久,终 ... 
- C#  两时间,时间间隔
			#region 返回时间差 public static string DateDiff(DateTime DateTime1, DateTime DateTime2) { ... 
- CSAPP(深入理解计算机系统)读后感
			9月到10月8号,包括国庆七天,大概每天5小时以上的时间,把Computer System: A Programmer Perspective 2rd version(深入理解计算机系统)的英文版啃完 ... 
- bzoj 2482: [Spoj GSS2] Can you answer these queries II 线段树
			2482: [Spoj1557] Can you answer these queries II Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 145 ... 
- 2016年如果还没有关注这些机器人公司,你就out了
			芯师爷语据 知名市场研究机构IDC发布报告称,预计到2019年,全球机器人及相关服务上的投入将达到1350亿美元,较2015年的710亿美元增长近一倍.报告称,机器人相关投资预计将以每年17%的速度增 ... 
