`
raymond.chen
  • 浏览: 1436829 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在oracle中使用scheduler的范例

 
阅读更多

范例源码:

-- 创建新表 
create table T_TEST_JOB
(
  ID        LONG,
  TEST_DATE TIMESTAMP(6)
)
tablespace GBIAPS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    minextents 1
    maxextents unlimited
);

-- 创建序列 
create sequence SEQ_TEST_JOB
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 10;  

-- 创建存储过程 
create or replace procedure P_TEST_JOB as 
begin 
   insert into t_test_job(id,test_date) values (SEQ_TEST_JOB.NEXTVAL,sysdate);
end; 
/ 

/*
在使用create_job或者create_schedule前,请先检查 NLS_DATE_LANGUAGE, NLS_DATE_FORMAT,
NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT 等参数的值, 通过alter session 命令来修改

alter session set NLS_DATE_FORMAT='yyyy-MM-dd';
alter session set NLS_TIMESTAMP_FORMAT='yyyy-MM-dd hh24:mi:ss';
alter session set NLS_TIMESTAMP_TZ_FORMAT='yyyy-MM-dd HH:MI:SS.FF AM TZR';

*/
select * from nls_session_parameters where parameter like '%_DATE_%' or parameter like '%_TIMESTAMP_%';


-- 创建job
-- FREQ 用来指定间隔的时间周期,可选参数有: YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY
-- INTERVAL 用来指定间隔的频繁,可指定的值的范围从1-999 
-- 附加的参数有: BYMONTH,BYWEEKNO,BYYEARDAY,BYMONTHDAY,BYDAY,BYHOUR,BYMINUTE,BYSECOND
/*
    每周的1,3,5运行job              FREQ=WEEKLY; BYDAY=MON,WED,FRI
    每年的3,6,9,12月的30号运行job   FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30
    
    每月1号凌晨1点执行一次
    Freq=Monthly;BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0;Interval=1
*/
begin
  sys.dbms_scheduler.create_job(job_name            => 'JOB_TESTJOB',
                                job_type            => 'STORED_PROCEDURE',
                                job_action          => 'P_TEST_JOB',
                                start_date          => sysdate,
                                repeat_interval     => 'Freq=MINUTELY;BYSECOND=0;Interval=1',
                                end_date            => to_date(null),
                                job_class           => 'DEFAULT_JOB_CLASS',
                                enabled             => true,
                                auto_drop           => false,
                                comments            => 'Baiyun Airport Web Site');
end;
/

-- 启动job
begin
   dbms_scheduler.enable('JOB_TESTJOB');
end;
/

-- 运行job
begin
   dbms_scheduler.run_job('JOB_TESTJOB',TRUE); -- true代表同步执行
end;
/

-- 停止job
begin
   dbms_scheduler.stop_job(job_name => 'JOB_TESTJOB',force => TRUE);
end; 
/

-- 删除job
begin
   dbms_scheduler.drop_job(job_name => 'JOB_TESTJOB',force => TRUE);
end;
/
  

-- 查询job
select * from user_scheduler_jobs;
select * from dba_scheduler_jobs;
 
-- 查看数据
select * from t_test_job;

-- 删除数据
delete from t_test_job;

 

分享到:
评论

相关推荐

    oracle Scheduler

    在这个例子中,`REPEAT_INTERVAL` 参数设置为 `FREQ=MINUTELY;INTERVAL=30`,意味着这个调度将每 30 分钟重复一次。 ### 创建作业(Job) 有了程序和调度后,下一步是创建作业(Job)。作业是指定在某个特定时间或...

    oraclejob例子

    Oracle Job是Oracle数据库中的一个核心特性,用于在预定义的时间执行特定的数据库任务,比如运行SQL脚本、数据备份、维护或性能监控等。Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler...

    ORACLE中的FTP例子代码

    以下是一个简单的示例,展示了如何在PL/SQL中使用操作系统命令执行FTP上传: ```sql DECLARE l_command VARCHAR2(2000); BEGIN l_command := 'ftp -n -v '; l_command := l_command || 'your_ftp_server '; l_...

    存储过程、触发器、定时器例子(oracle)

    在Oracle中,创建存储过程使用`CREATE PROCEDURE`语句,调用则通过`EXECUTE`命令。例如,一个简单的存储过程可能用于计算两个数字的和: ```sql CREATE OR REPLACE PROCEDURE add_numbers (p_num1 NUMBER, p_num2...

    oracle提权工具-oracleShell.zip

    OracleShell是一个典型的例子,它是Java编写的,包含在名为`oracleShell.jar`的压缩包文件中。 OracleShell允许用户通过命令行接口与Oracle数据库进行交互,执行SQL查询、操作数据以及利用可能存在的安全漏洞来提升...

    Oracle Job的用法

    在这个例子中,`my_job`是job的名称,`my_package.my_procedure`是要执行的PL/SQL过程,`start_date`指定了开始运行的时间,`repeat_interval`定义了job的执行频率。 二、修改和删除Job 如果需要修改已创建的job,...

    Java Oracle JOBS 自动调度

    在这个例子中,我们连接到Oracle数据库,然后执行`DBMS_SCHEDULER.RUN_JOB`存储过程来启动名为"your_job_name"的作业。这需要在Oracle数据库中已经定义了这个作业,并赋予了相应的执行权限。 至于标签“源码”和...

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

    在Oracle中,DBMS_SCHEDULER是用于创建、管理和执行计划任务的包,这些任务可以是存储过程、PL/SQL块或其他可执行的数据库对象。通过使用DBMS_SCHEDULER,你可以设置任务在特定时间运行,例如每天、每周或当特定条件...

    oracle定时任务

    在这个例子中,我们创建了一个名为`my_task`的作业,它每天执行一次`my_package.my_procedure`这个PL/SQL过程。 2. **配置任务参数** - `job_name`是作业的唯一标识符。 - `job_type`指明作业类型,如PL/SQL块、...

    计算机软件-编程源码-oracle数据库备份的例子.zip

    在这个“计算机软件-编程源码-oracle数据库备份的例子.zip”压缩包中,我们可能会找到一个关于如何通过编程方式执行Oracle数据库备份的示例。 1. **脚本备份**:在许多情况下,开发人员会编写脚本来自动化备份过程...

    ORACLE创建JOB脚本

    在这个例子中,`my_package.my_procedure`是你希望每天晚上9点执行的存储过程。`next_date`参数指定了首次执行的时间,`interval`参数表示每隔24小时加9小时(即9点)再次执行。 请注意,你需要根据实际的存储过程...

    oracle 物化视图详解(内含例子)

    ### Oracle 物化视图详解 #### 一、物化视图的...物化视图是Oracle数据库中一项重要的功能,它能够显著提高查询效率,特别是在处理大量数据和复杂查询时。通过合理设计和管理物化视图,可以大大提升系统的整体性能。

    Oracle-plan.rar_oracle

    在这个例子中,我们创建了一个名为"DAILY_DB_BACKUP"的作业,它执行的是存储在指定路径的SQL脚本,并且设置为每天凌晨1点执行一次。 总的来说,Oracle的定时执行计划任务是数据库维护和管理中不可或缺的一部分,它...

    oracle trigger at a certain time

    在这个例子中,`my_procedure`是你要执行的存储过程,`start_date`定义了首次执行时间,`repeat_interval`定义了执行频率。 三、数据库触发器示例 ```sql CREATE OR REPLACE TRIGGER daily_check BEFORE LOGON ON ...

    oracle 自动执行存储过程

    在这个例子中,我们将创建一个名为`INF_HstIshISTR`的存储过程,用于向表`abc`中插入一条记录。 ```sql CREATE OR REPLACE PACKAGE mqce IS PROCEDURE INF_HstIshISTR; END mqce; CREATE OR REPLACE PACKAGE BODY...

    Oracle 10g的任务调度.pdf

    在这个例子中,描述了创建一个过程SEND_APPROVE,用于获取需要审批单据的主管信息,并将其发送到主管的邮箱中。然后利用DBMS_SCHEDULER.CREATJOB包创建了一个定时任务,该任务计划在特定的时间(如每晚23:50)运行,...

    TX_CON_0088_oracle_oracle存储过程实战_

    在这个例子中,`my_proc`是存储过程的名字,`param1`是输入参数,`param2`是输出参数。`IN`表示参数值在调用时传入,`OUT`表示在过程执行后传出。`AS`关键字后定义了过程体,其中包含了一条SQL语句,用于计算`param2...

    oracle job 例子

    Oracle Job 是 Oracle 数据库中的一个特性,用于在指定的时间执行一系列数据库操作,这些操作可以是 PL/SQL 块、存储过程或者包。这个功能在数据库管理、数据维护、批处理任务等方面非常实用。在本篇文章中,我们将...

Global site tag (gtag.js) - Google Analytics