`
高级java工程师
  • 浏览: 410529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle设置定时任务job调度执行存储过程或pl/sql代码块

阅读更多
目前oracle数据库设置定时任务job调度一般有两种方式,分别是dbms_scheduler创建job调度和dbms_job创建job调度。dbms_scheduler创建job调度是在10g以后才有的,甲骨文公司为了用来替换dbms_job而提供了更强大的功能与更灵活的机制/管理。下面介绍这两种方式。

1. dbms_scheduler创建job调度。


--查询

 select * from dba_scheduler_jobs;

--创建job

 begin

 dbms_scheduler.create_job (

 job_name => 'job_myjob', --job名

 job_type => 'STORED_PROCEDURE',--job类型

 job_action => 'proc_myproc', --存储过程名

 start_date => sysdate,--开始执行时间

 repeat_interval => 'FREQ=DAILY;BYHOUR=9;BYMINUTE=30;BYSECOND=0', -- 下次执行时间,按天,每天09:30:00执行存储过程proc_myproc

 comments => '测试JOB',--注释

 auto_drop=>false  --job禁用后是否自动删除

 );

 end;

--运行

begin

dbms_scheduler.run_job('job_myjob');

end;

--启用

begin

dbms_scheduler.enable('job_myjob');

end;

--禁用

begin

dbms_scheduler.disable('job_myjob');

end;

--刪除

begin

   dbms_scheduler.drop_job(job_name => 'job_myjob',force => TRUE);

  end; 




2.dbms_job创建job调度。


--查询

select * from dba_jobs;

select * from all_jobs;

select * from user_jobs;

select * from dba_jobs_running;

-- 创建job

declare      

   job_id number;--声明一个out变量

begin

    -- 按天,每天09:30:00执行这个存储过程proc_myproc,并且输出一个job_id变量,其值为该job的ID号

   dbms_job.submit(

       job_id, --参数是输出参数,由submit()过程返回的binary_ineger,这个值用来唯一标识一个工作。一般定义一个变量接收,可以去user_jobs视图查询job值。 

       'proc_myproc;',  --参数是将被执行的PL/SQL代码块,存储过程名称等。  

       sysdate, --参数指识何时将运行这个工作。 

       'TRUNC(SYSDATE+1)+(9*60+30)/(24*60)'    --参数何时这个工作将被重执行。

    ); 

   -- 把job的ID号打印出来

   dbms_output.put_line(job_id);

end;

-- 运行job

begin

    -- 这个7为job_id,请换为你自己对应的job号

   dbms_job.run(7);

end; 

-- 启用job

begin

   dbms_job.broken(7,false);

end; 

-- 禁用job

begin

   dbms_job.broken(7,true);

end; 

-- 删除一个job

begin

   dbms_job.remove(7);

end; 


分享到:
评论

相关推荐

    Oracle PL/SQL常用47个工具包

    19. **DBMS_PROFILER**: 性能分析工具,追踪PL/SQL代码的执行时间。 20. **DBMS_METADATA_DIFF**: 比较并显示两个数据库对象之间的差异。 21. **DBMS_RLS**: 实现行级安全性,控制用户对特定行的访问。 22. **...

    oracle定时任务

    Oracle定时任务,也被称为Oracle数据库的调度作业,是Oracle数据库管理系统提供的一种功能,允许用户预定义一系列操作,如运行SQL脚本、数据备份或数据清理等,并设定在特定时间自动执行。这种机制对于自动化数据库...

    oracle job调度存储过程 触发器 定时更新数据库

    "存储过程"是预编译的SQL和PL/SQL代码块,可以封装一系列操作,方便重复使用和调用。而"触发器"则是一种特殊的存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。 Oracle Job调度存储...

    绝对好的 oracle pl/sql 编程

    3. **可维护性**: 使用 PL/SQL 编写的程序易于维护,尤其是当它们被组织成包或存储过程时。 4. **模块化**: PL/SQL 支持模块化编程,可以通过函数和过程实现代码复用。 5. **事务支持**: PL/SQL 自然支持事务处理,...

    pl/sql笔记

    PL/SQL(Procedural Language for SQL)是Oracle数据库系统中的一种过程化编程语言,它结合了SQL的数据处理能力与传统过程化语言的控制结构,使得在数据库内部进行复杂逻辑处理成为可能。以下是PL/SQL能够实现的主要...

    Oracle定时任务详解.docx

    它允许用户安排PL/SQL代码块在预设的时间点或按照特定的间隔执行,无需依赖操作系统级别的定时任务如Windows的任务计划程序或Unix的cron。这种方法在处理大量数据库操作时尤其高效,因为它直接在数据库内部进行调度...

    PL/SQL 程序设计

    - **任务调度**:安排定时任务。 **9.4 使用DBMS_OUTPUT软件包** - **输出结果**:在客户端显示结果。 **9.5 使用UTL_FILE软件包** - **文件操作**:读写文件。 以上是关于PL/SQL程序设计的一些核心知识点和...

    Oracle JOB 用法小结

    Oracle的JOB功能是一种定时任务调度机制,用于在数据库后台自动执行预定义的PL/SQL代码块或存储过程。以下是对Oracle JOB用法的详细总结: 首先,为了启用JOB队列,需要设置初始化参数`job_queue_processes`。通过...

    Oracle存储过程调用bat批处理脚本程序

    首先,`Oracle存储过程`是一种预编译的SQL和PL/SQL代码集合,可以被多次调用以执行特定的任务。它们提高了性能,降低了网络流量,并简化了数据库管理。在存储过程中调用外部脚本可以扩展Oracle的功能,比如自动化...

    精通Oracle 10g Pl SQL編程

    - 异步处理:使用DBMS_JOB或DBMS_AQ进行后台任务调度和消息队列操作。 - 分区和索引:利用Oracle 10g的分区功能优化大表的性能,以及索引的创建和管理。 - 触发器(TRIGGER):自动响应数据库表上的DML操作,实现...

    Oracle定时任务

    2. **执行PL/SQL块**:定时任务通常执行自定义的PL/SQL代码,例如更新、插入或删除记录,或者调用存储过程。 3. **设置调度**:你可以设定任务何时开始、何时结束,以及执行频率。例如,可以设定每天的特定时间执行...

    PLSQL程序设计.pdf (清晰版)

    存储过程和函数是在数据库中预先编写的PL/SQL代码块,用于执行特定任务。 - **6.2 创建函数**:如何定义和使用PL/SQL函数。 - **6.3 存储过程** - **6.3.1 创建过程**:如何定义和创建PL/SQL过程。 - **6.3.2 ...

    oracle定时任务.txt

    job_type => 'PLSQL_BLOCK', -- 任务类型:PL/SQL代码块 job_action => 'UPDATE Li_Pm_Product_Attr SET Is_Insurance = ''1'' WHERE Product_Code = ''421303'';', start_date => TO_DATE('01-01-2020 00:00:00'...

    创建oracle数据库定时任务的操作.docx

    - **定义执行内容**:可以选择执行SQL脚本、PL/SQL代码块或存储过程。 - **指定执行时间**: - **立即执行**:选择一次性任务。 - **重复执行**:设置周期性任务,如每天、每周等。 - **自定义执行计划**:使用...

    oraclejob+存储过程的使用示例.pdf

    在Oracle中,Job是一个计划的任务,可以按预定义的时间间隔自动执行特定的PL/SQL代码或存储过程。以下是一个创建Job的实例: 1. 创建一个名为`pig`的表,其中包含一个日期类型的字段`a`: ```sql SQL> create table...

    oracle定时任务.pdf

    2. **Change()过程**:允许修改已存在作业的设置,包括作业号、执行的PL/SQL代码块、下次运行的日期和执行间隔。 3. **Interval()过程**:设置作业之间的执行间隔,提供作业号和间隔时间作为参数。 4. **ISubmit()...

    oracle定时任务机制及用法.docx

    `what`参数是一个PL/SQL代码字符串,表示要执行的任务,通常是对存储过程的调用。`next_date`参数定义了任务下次运行的时间,`interval`参数则是计算下一次任务运行的时间间隔,通常是一个日期表达式。 在使用`DBMS...

    ORACLE创建JOB脚本

    2. DBMS_JOB.SUBMIT:提交一个新任务到调度队列,指定执行的PL/SQL代码或存储过程,并设置初始执行时间和间隔。 3. DBMS_JOB.RUN:立即启动一个已经存在的JOB。 4. DBMS_JOB.SCHEDULE:重新安排一个已存在的JOB,...

    DB_job.zip_job_oracle

    这些作业允许管理员安排在特定时间执行的PL/SQL代码块或操作系统命令,从而实现自动化任务处理。"DB_job.zip_job_oracle"标题暗示了这个压缩包包含与创建、管理和监控Oracle数据库作业相关的资源,特别是通过SQL脚本...

    oracle_plsql_编程详解

    - **性能优势**:PL/SQL代码直接在数据库服务器上执行,减少了网络传输的数据量,提高了整体性能。 - **安全性**:通过PL/SQL封装数据库操作逻辑,可以实现更细粒度的安全控制。 - **模块化**:支持函数、过程、包等...

Global site tag (gtag.js) - Google Analytics