`
雪馨25
  • 浏览: 129186 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

【oracle】初学jobs

阅读更多

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

照猫画虎--创建job

1、创建测试表JOB_TEST

  1. create table JOB_TEST(a date);  

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

  1. create or replace procedure JOB_PRO_TEST as  
  2.    begin  
  3.    insert into JOB_TEST values(sysdate);  
  4.    end;  
  5.    /  

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

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

另一:

  1. declare jobtest number;  
  2. begin  
  3.         dbms_job.submit(  
  4.                  job =>jobtest ,  
  5.                  what=>'JOB_PRO_TEST;',  
  6.                  next_date => sysdate,  
  7.                  interval => 'sysdate+1/1440',  
  8.                  no_parse => true);  
  9. end;  
  10. /  

 

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

 

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

 


4、手动运行jobtest

  1. begin  
  2. dbms_job.run(:jobtest);  
  3. end;  
  4. /  

5.删除jjobtest

  1. begin  
  2. dbms_job.remove(:jobtest);  
  3. end;  
  4. /  

另一

  1. begin  
  2.    dbms_job.remove(jobnomuber);  
  3. end;  
  4. /  

 

jobnomuber为job号,通过查询可得

拦路虎--问题

问题一:

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

 


解决:
采用这样的方式::jobtest,注意那个冒号,可能会抛出‘并非所有变量都已绑定’异常,解决的方式:去掉那个冒号

 

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


解决:

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

  1. select * from user_jobs;   
  2. 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

0
6
分享到:
评论

相关推荐

    oracle JOB常见的执行时间定义

    oracle JOB常见的执行时间, 在初学者定义JOB时,对于执行时间往往不知道如何设置. 该文档列举了常见的定义方式.可以由此进行扩展.

    Oracle培训教材.doc

    以上是Oracle SQL基础的概述,对于初学者来说,掌握这些概念和语法是理解和操作Oracle数据库的第一步。通过深入学习和实践,可以进一步掌握更复杂的查询、索引、视图、存储过程等高级特性,从而成为熟练的Oracle...

    oracle job 创建

    对于初学者来说,理解如何创建、运行和管理 Oracle Job 是十分重要的。 1. **Job 的创建**: 创建一个 Oracle Job 需要使用 `DBMS_JOB` 包中的 `SUBMIT` 子程序。在提供的示例中,我们看到以下步骤: - 首先,...

    oracle hr schema

    这个schema包含了各种与员工、部门、职位等相关的信息,是初学者和专业人士了解Oracle数据库特性的实用工具。在建立Oracle HR Schema时,我们需要进行一系列的步骤,涉及到SQL脚本的执行和数据库对象的创建。 首先...

    oracle hr.sh.oe.pm 用户的之间的详细介绍

    总之,Oracle数据库11g的hr、sh、oe、pm用户模式提供了丰富的学习资源,无论是初学者还是经验丰富的数据库管理员,都可以从中获得有价值的知识和技能。它们不仅是学习SQL查询、PL/SQL编程、数据库设计的理想平台,也...

    oracle整理资料

    这些都将帮助你全面理解和掌握Oracle数据库的各个方面,无论你是初学者还是经验丰富的DBA,都能从中受益。 通过深入学习这份资料,你将能够熟练地运用Oracle数据库进行数据管理和应用开发,提升你在IT行业的专业...

    oracle常用函数

    本篇文章将详细探讨在Oracle中最常用的函数,这些函数对于初学者来说是掌握Oracle SQL的基础。 1. 字符串连接:Oracle使用`||`运算符来连接两个或多个字符串。例如,`SELECT first_name || ‘ ‘ || last_name ...

    在SQL Server和Oracle中创建job

    对于初学者,通过图形界面设置更为直观。 4. 创建完成后,可以通过右键点击job,选择"Script job as" -> "CREATE TO",将job生成为SQL脚本,便于在其他环境复用或备份。 以下是一个简化版的SQL Server job创建脚本...

    kettle4 版本基本学习资料

    任务(Jobs)则协调多个转换的执行,通常按计划自动化运行。 2. **Pan**:Pan是一个数据转换引擎,执行实际的数据处理工作,包括从各种数据源读取、处理和写入数据。 3. **Kitchen**:Kitchen用于执行XML或数据库...

    解决方案:使用PDI构建开源ETL解决方案

    2. **数据源的连接**:如何配置和连接到各种数据源,如关系型数据库(MySQL、Oracle等)、文本文件、XML文件、Excel表格等。 3. **数据抽取**:学习使用PDI的各种步骤来读取和抽取数据,包括处理分隔符、编码问题...

    Activiti in Action

    无论是对于初学者还是经验丰富的开发人员来说,这本书都是一个宝贵的资源。通过阅读本书,读者将能够掌握如何使用Activiti构建高效、灵活且易于维护的业务流程管理系统。 通过以上对《Activiti in Action》及其...

    全部的java学习网站

    1. **Sun Microsystems(现已被Oracle收购)官方网站** - **网址**: http://java.sun.com - **内容概述**: 提供了Java技术的最新动态、文档和技术支持。该网站是Java开发者获取权威信息的第一站。 2. **Java SE ...

    Kettle 3.2使用说明书(中文清晰版)

    - 在Kettle中创建一个新的资源库,首先需要确定资源库的类型,如Oracle、MySQL等。 - 配置资源库连接信息:包括数据库地址、端口、用户名和密码。 - 创建资源库表空间(如果数据库需要),并确保权限配置正确。 ...

    DSpace-Manual.pdf

    ### DSpace 1.5.1 手册关键知识点概览 #### 一、DSpace 系统文档:介绍 **DSpace** 是一个开放源码的数字仓库系统,用于收集、保存、索引、...无论是初学者还是有经验的管理员,都可以从中获取必要的知识和技术支持。

    Ubuntu如何轻松编译openJDK详解

    虽然这个过程可能需要一定的时间和计算资源,但遵循上述步骤,即使是初学者也能在Ubuntu上成功编译OpenJDK。在遇到问题时,不要忘记查阅官方文档、Stack Overflow等社区资源,以便解决遇到的任何疑问。

    sqoop1-1.4.6 documentation 英文文档

    - **数据库**: MySQL、Oracle、PostgreSQL、DB2 等主流关系型数据库。 #### 3. Sqoop 发行版 Sqoop 1.4.6 是 Sqoop 的一个稳定版本,包含了一系列功能改进和错误修复,旨在提供更稳定的数据迁移体验。 #### 4. ...

Global site tag (gtag.js) - Google Analytics