扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可以用图形化界面来创建JOB,如图:在PL/SQL的项目DBMS_JOBS中进行新建。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的蕲春网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
填写好上面标红的地方后,点击应用即可生成计划!
特别提示:
oracle是执行完任务,才按照interval去计算下次执行时间!!!
为精确每个5分钟执行一个任务,必须自己计算时间。
如:trunc_minute(sysdate)+5/1440
create or replace function trunc_minute(v_date date) return date as
begin
return to_number(trunc(to_char(v_date, 'mi')/5))*5/(24*60) + trunc(v_date, 'hh24');
end;
建数据库一般方法:
1 在安装数据库系统的时候就可以选择同时创建数据库
2 安装数据库系统是不建库,安装之后建库;
开始 运行 输入dbca 回车,在弹出的界面操作,下一步下一步,
其实跟第一种一样的
3 手工建库:
创建数据库脚本:
create database mydb
maxinstances 1 maxloghistory 1
maxlogfiles 5 maxlogmembers 3
maxdatafiles 100
datafile 'E:\oracle\oradata\mydb\system01.dbf'
size 250M reuse autoextend on next 10240K maxsize unlimited
extent management local
default temporary tablespace temp tempfile
'E:\oracle\oradata\mydb\temp01.dbf' size 40M reuse autoextend on
next 640K maxsize unlimited
undo tablespace "undotbs1" datafile
'E:\oracle\oradata\mydb\undotbs01.dbf' size 200M reuse
autoextend on next 5120K maxsize unlimited
character set we8mswin1252
national character set al16utf16
logfile
group 1 ('E:\oracle\oradata\mydb\redo01a.log','E:\oracle\oradata\mydb\redo01b.log') size 102400K,
group 1 ('E:\oracle\oradata\mydb\redo02a.log','E:\oracle\oradata\mydb\redo02b.log') size 102400K,
group 1 ('E:\oracle\oradata\mydb\redo03a.log','E:\oracle\oradata\mydb\redo03b.log') size 102400K;
手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。手工建库须要经过几个步骤,每一个步骤都非常关键。它包括:
1、 创建必要的相关目录
2、 创建初始化参数文件
3、 设置环境变量Oracle_sid
4、 创建实例
5、 创建口令文件
6、 启动数据库到nomount(实例)状态
7、 执行建库脚本
8、 执行catalog脚步本创建数据字典
9、 执行catproc创建package包
10、 执行pupbld
11、 由初始化参数文件创建spfile文件
12、 执行scott脚本创建scott模式
做完了以上的步骤之后就可以使用“SQLalter database open;”打开数据库正常的使用了。下面,我将具体地把以上的几个步骤用实验展开来讲。
实验系统平台:Windows Server 2000 数据库系统版本:Oracle Database 10G
Oracle的安装路径:D盘 创建的数据库名称:book
1、打开命令行工具,创建必要有相关目录
C:\mkdir D:\oracle\product\10.1.0\admin\book
C:\mkdir D:\oracle\product\10.1.0\admin\book\bdump
C:\mkdir D:\oracle\product\10.1.0\admin\book\udump
C:\mkdir D:\oracle\product\10.1.0\admin\book\cdump
C:\mkdir D:\oracle\product\10.1.0\admin\book\pfile
C:\mkdir D:\oracle\product\10.1.0\admin\book\create
C:\mkdir D:\oracle\product\10.1.0\oradata\book
上面创建目录的过程也可以在Windows的图形界面中去创建。其中D:\oracle\product\10.1.0\admin\book目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库动行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放和特定会话相关的跟踪信息。D:\oracle\product\10.1.0\oradata\book目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。
2、创建初始化参数文件
数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。因此,初始化参数文件创建的是否正确、参数设置是否正确关系着整个建库的“命运”。
创建初始化参数文件可以通过拷贝现在的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。在我们安装Oracle的时候,系统已经为我们安装了一个名为orcl的数据库,于是我们可以从它那里得到一份初始化参数文件。打开D:\oracle\product\10.1.0\admin\orcl\pfile,找到init.ora文件,把它拷贝到D:\oracle\product\10.1.0\bd_1\databse下,并将其改名为initbook.ora。接着用记事本的方式打开initbook.ora,修改以下的内容:
db_domain=""
db_name=book
control_files=("D:\oracle\product\10.1.0\oradata\book\control01.ctl", "D:\oracle\product\10.1.0\oradata\book\control02.ctl", "D:\oracle\product\10.1.0\oradata\book\control03.ctl")
undo_management=AUTO
undo_tablespace=UNDOTBS1 ――注意此处的“UNDOTBS1”要和建库脚步本中对应
background_dump_dest=D:\oracle\product\10.1.0\admin\book\bdump
core_dump_dest=D:\oracle\product\10.1.0\admin\book\cdump
user_dump_dest=D:\oracle\product\10.1.0\admin\book\udump
3、打开命令行,设置环境变量oracle_sid
C:\set oracle_sid=book
设置环境变量的目地是在默认的情况下,指定命令行中所操作的数据库实例是book。
4、创建实例(即后台控制服务)
C:\oradim –new –sid book
oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定害例的名称。
5、创建口令文件
C:\orapwd file=D:\oracle\product\10.1.0\db_1\database\pwdbook.ora password=bookstore entries=2
orapwd是创建口令文件的工肯程序各称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数,当然还有一个force参数,相信您不指即明,这里就不再细述。
请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。
口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的中令单独存放于口令文件中,这样数据库末打开时也能进行口令验证。
6、启动数据库到nomount(实例)状态
C:\sqlplus /nolog
SQL*Plus:Release 10.1.0.2.0 - Production on 星期三 6月 29 23:09:35 2005
Copyright 1982,2004,Oracle. All rights reserved.
SQLconnect sys/bookstore as sysdba ---这里是用sys连接数据库
已连接到空闲例程
SQLstartup nomount
ORACLE 例程已经启动。
Total System Global Area 319888364bytes
Fixed Size 453612bytes
Variable Size 209715200bytes
Database Buffers 109051904bytes
Redo Buffers 667648bytes
SQL
7、执行建库脚本
执行建库脚本,首先要有建库的脚本。(去哪找建库脚本呢?我又没有!)不用着急,请接着往下看。
得到一个符合自己要求的建库脚本有两种方法,一种方法是在自己的电脑上用DBCA来建,接照它的提示一步步地去做,在做到第十二步的时候,请选择“生成建库脚本”,然后就大功告成,你就可以到相应的目录上去找到那个脚本并适当地修它便可便用。另一种方法就是自己手工去写一份建库脚本,这也是这里要见意使用的方法,用记事本编辑如下的内容,并将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,这里保存到E盘根本录下且文件名称为book.sql。
create database xuyn
datafile 'E:\oracle\oradata\xuyn\system01.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited
extent management local
--10g新特性sysaux表空间
--sysaux datafile 'E:\oracle\oradata\xuyn\sysaux01.dbf'
--size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'E:\oracle\oradata\xuyn\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1"
datafile 'E:\oracle\oradata\xuyn\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('E:\oracle\oradata\xuyn\redo01.log') size 10240K,
group 2 ('E:\oracle\oradata\xuyn\redo02.log') size 10240K,
group 3 ('E:\oracle\oradata\xuyn\redo03.log') size 10240K;
接着就执行刚建的建库脚本:
SQLstart E:\book.sql
8、执行catalog脚步本创建数据字典
SQLstart D:\oracle\product\10.1.0\db_1\rdbms\admin\catalog.sql
9、执行catproc创建package包
SQLstart D:\oracle\product\10.1.0\db_1\rdbms\admin\catproc.sql
10、执行pupbld
在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。你可以在数据库建好以后再来重新设置此账户的口令。
SQLconnect system/manager
SQLstart D:\oracle\product\10.1.0\db_1\sqlplus\admin\pupbld.sql
11、由初始化参数文件创建spfile文件
SQLcreate spfile from pfile;
12、执行scott脚本创建scott模式
SQLstart D:\oracle\product\10.1.0\db_1\rdbms\admin\scott.sql
13、把数据库打开到正常状态
SQLalter database open;
14、以scott连接到数据库(口令为tiger),测试新建数据库是否可以正常运行
至此,整个数据库就已经建好了。接着你就可以在此数据库上建立自己的账户和表空间啦以及数据库对象,这里就不再作更多地叙述。(责任编辑:卢兆林)
启动数据库:
oradim -startup -sid xuyn -starttype srvc
sqlplus /nolog
conn sys/xuyn as sysdba
startup
工作中,我们使用的数据库大部分是oracle、mysql、db2、sql server等数据库,在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢看下面我简单介绍使用工具创建定时器的方法。
安装准备 首先我们需要去下载Oracle10g的安装包,现在官网上已经不提供Oracle10g的下载了。这里提供百度云盘的下载地址: 百度云盘: 官网(11g、12c下载): 安装 *下载完后,我们解压缩镜像文件得到如下目录:*点击setup.exe,进入安装界面:*如果在windows7系统安装中出现Checkingoperatingsystemversion:mustbe4.0,5.0,5.1or5.2.错误,解决办法安装程序——》属性——》兼容性,勾选XP兼容模式和以管理员身份运行此程序,即可。 *出现基本安装和高级安装。基本安装较简单,配置少,很多配置采用Oracle默认的。这里我们点击高级安装,下一步进入如下页面:*其中,源表示你Oracle的安装文件完整路径(不要改变,默认即可),目标表示Oracle的安装位置,确定好目录后,点击下一步:*选择安装类型: 企业版:面向企业级应用,用于对安全性要求较高并且任务至上的联机事务处理(OLTP)和数据仓库环境。在标准版的基础之上安装所有许可的企业版选项。 标准版:适用于工作组或部门级别的应用,也适用于中小企业(SME)。提供核心的关系数据库管理服务和选项。 个人版:除了仅支持单用户的开发和部署之外,与企业版安装类型相同(安装相同的软件),面向开发技术人员。 定制:允许用户从可安装的组件列表中选择安装单独的组件。还可以在现有的安装中安装附加的产品选项,如要安装某些特殊的产品或选项就必须选择此选项。 这里我们选择企业版,具体原因我也不清楚。下一步:*指定数据库配置: 全局数据库名:用于区分在分布式系统中的数据库。一般由数据库名和数据库域组成,格式为“数据库名.数据库域”。 SID(SystemIdentifier):用于区分同一个数据库中的不同实例。 数据库字符集、数据库示例:看说明。 这里我们全局数据库名与SID都采用默认的orcl,数据库字符集采用简体中文,不勾选创建带样本方案的数据库。点击下一步:*选择数据库管理选项。默认即可,不选择电子邮件通知。点击下一步:*指定数据库文件存储选项: 文件系统:指定数据库控制文件、数据文件、日志文件等的存储位置。 自动存储管理、裸设备:见说明。 选择文件系统,设定好存储路径。点击下一步:*指定备份和恢复选项。采用不启用备份。点击下一步:*指定数据库方案的口令。这里不推荐默认口令,我们可以为每个用户名设定不同的口令。这里为了记录方便,我们选择所有账户都采用同一个口令,输入口令system。点击下一步:*出现概要信息,描述安装选项。点击安装:*安装过程有些耗时,耐心等待。配置完毕后,显示数据库信息窗口。单机口令管理,这里可以锁定和解锁用户、设置口令等操作:*我们解锁scott用户并设置口令system。点击确定按钮返回数据库信息窗口,点击确定返回“ConfigurationAssistant”窗口,显示“状态”为“成功”:*单击“下一步”按钮,就会显示“安装结束”窗口。再点击退出按钮。自此Oracle10g的安装完成。*之后我们便可以在开始菜单中看到安装的Oracle数据库了。下面我们测试下Oracle数据库是否安装成功。 测试Oracle安装是否成功 *这里我们用Oracle数据库自带的工具SQLPLUS进行操作。点击开始菜单,路径如下:*点击进入如下界面:*输入用户名称scott、口令system、主机字符串orcl。点击确定,进入如下页面:*输入查询语句,查询scott用户下的emp表,出现如下情况,恭喜你Oracle安装成功。
Oracle 定时执行计划任务
Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB 提供了更强大的功能和更灵活的机制管理,但DBMS_JOB 包的使用相对比较简单,也基本能够满足定时执行计划任务的需求,故接下来就先看看DBMS_JOB 包的使用方法。
1. DBMS_JOB
我们可以在命令窗口输入show parameter job_queue_processes 查看数据库中定时任务的最多并发数,一般设置为10(设置方法:alter system set job_queue_processes=10),如果设为0,那么数据库定时作业是不会运行的。
oracle 定时执行job queue 的后台进程是SNP,要启动snp,首先看系统模式是否支持sql alter system enable restricted session;或sql alter system disenable restricted session;利用上面的命令更改系统的会话方式为disenable restricted,为snp 的启动创建条件.
接下来我们尝试实现以下功能:每隔一分钟自动向job_test 表中插入当前的系统时间。
1、创测试表
create table job_test(updatetime date);
2、创建JOB
variable v_job_no number;
begin
dbms_job.submit(:v_job_no, 'insert into job_test values(sysdate);', sysdate,'sysdate+1/1440');
end;
/
其中最后一个参数'sysdate+1/1440'表示时间间隔为每分钟。其它常用的时间间隔的设置如下:
(1)如果想每天凌晨1 点执行,则此参数可设置为'trunc(sysdate)+25/24';(2)如果想每周一凌晨1 点执行,则此参数可设置为'trunc(next_day(sysdate,1))+25/24';
(3)如果想每月1 号凌晨1 点执行,则此参数可设置为'trunc(last_day(sysdate))+25/24';
(4)如果想每季度执行一次,则此参数可设置为'trunc(add_months(sysdate,3),'Q')+1/24';(5)如果想每半年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),6)+1/24';(6)如果想每年执行一次,则此参数可设置为'add_months(trunc(sysdate,'yyyy'),12)+1/24'。
select * from user_jobs;--查看当前用户的调度任务select * from dba_jobs_running;--查看正在执行的调度任务select * from dba_jobs;--查看执行完的调度任务select * from all_jobs; -- 查看数据库系统所有任务实例1:
1. 创建测试表
create table a(a date);
2. 创建一个存储过程
create or replace procedure test as
begin
insert into a values(sysdate);
end;
/
3. 创建JOB(任务计划)
variable job1 number;
begin
dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');end;
/
--每天1440分钟,即一分钟运行test存储过程一次4. 运行JOB
begin
dbms_job.run(:job1);
end;
/
5. 查看执行结果
select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;6.删除JOB
begin
dbms_job.remove(:job1);
end;
/
job的使用说明:
DBMS_JOB.SUBMIT(:jobno,//job号
'your_procedure;',//要执行的过程
trunc(sysdate)+1/24,//下次执行时间
'trunc(sysdate)+1/24+1'//每次间隔时间
);
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);修改下次执行时间:dbms_job.next_date(job,next_date);修改间隔时间:dbms_job.interval(job,interval);停止job:dbms.broken(job,broken,nextdate);启动job:dbms_job.run(jobno);
例子:
VARIABLE jobno number;
begin
DBMS_JOB.SUBMIT(:jobno,
'Procdemo;',//Procdemo为过程名称
SYSDATE, 'SYSDATE + 1/720');
commit;
end;
/
描述 Interval参数值
每天运行一次
'SYSDATE + 1'
每小时运行一次
'SYSDATE + 1/24'
每10分钟运行一次
'SYSDATE + 10/(60*24)'
每30秒运行一次
'SYSDATE + 30/(60*24*60)'
每隔一星期运行一次
'SYSDATE + 7'
不再运行该任务并删除它
NULL
每天午夜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)'
2. DBMS_SCHEDULER
DBMS_SCHEDULER的功能更强大,定义更灵活,增强了与系统的交互性。可以有两种方式来定义"计划":
1) 使用DBMS_SCHDULER.CREATE_SCHEDULE //定义一个计划,计划再调用job;2) 调用DBMS_SCHDULER.CREATE_JOB //过程直接定义job例子1:用DBMS_SCHDULER.CREATE_JOBE直接创建jobBEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name = 'update_bb', //job的名字
job_type = 'STORED_PROCEDURE', //job的类型为“执行存储过程”
job_action = 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY', //存储过程的名字start_date = '28-APR-10 07.00.00 PM Australia/Sydney', //这里把时区去掉也可以!
repeat_interval = 'FREQ=DAILY;INTERVAL=2', /* every other day */enabled =true, //启动该job
comments = 'My new job'); //注释
END;
/
参数说明:
·job_name: 顾名思义,每个job都必须有一个的名称·schedule_name: 如果定义了计划,在这里指定计划的名称·job_type: 目前支持三种类型:
·PLSQL_BLOCK : PL/SQL块: 需要输入完整的PL/SQL代码;·STORED_PROCEDURE : 存储过程: 需要指定存储过程的名字;·EXECUTABLE: 外部程序: (外部程序可以是一个shell脚本,也可以是操作系统级别的指令). 需要输入script的名称或者操作系统的指令名·enabled: 上面已经说过了,指定job创建完毕是否自动激活·comments: 对于job的简单说明
例子2:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name = 'zbb_job3',
job_type = 'PLSQL_BLOCK', //job的类型是执行sql语句job_action = 'insert into bb values(1,sysdate);',start_date = sysdate,
repeat_interval = 'freq = minutely; interval=1', //每分钟执行一次enabled = true,
comments = 'my love');
END;
/
注意: enabled 默认为false,oracle不会运行此job,所有我们需要enable它SQL exec dbms_scheduler.enable ('zbb_job3');例子3:使用DBMS_SCHDULER.CREATE_SCHEDULE
建立 scheduler(控制时间和频率),然后给它添加几个jobs(动作)!
BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE ( //创建计划任务schedule_name = 'zbb_schedule',
repeat_interval = 'FREQ=MINUTELY; INTERVAL=5', //执行间隔:每5分钟comments = 'Every 5 MINUTS');
END;
/
接下来往“zbb_schedule”里添加一个job “zbb_job2”:
BEGIN
DBMS_SCHEDULER.CREATE_JOB ( //创建job 并把它加入到scheduler里面job_name = 'zbb_job2',
job_type = 'PLSQL_BLOCK',
job_action = 'insert into bb values(1,sysdate);',schedule_name = 'ZBB_SCHEDULE');
END;
/
再往“zbb_schedule”里添加一个job “zbb_job3”:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name = 'zbb_job3',
job_type = 'PLSQL_BLOCK',
job_action = 'insert into bb values(1,sysdate);',schedule_name = 'ZBB_SCHEDULE');
END;
/
运行“select job_name,schedule_name from user_scheduler_jobs;”可以查看到所有的job。
也可以将“zbb_job1” 加入到 “zbb_schedule”
SQL begin
2 dbms_scheduler.SET_ATTRIBUTE( //注意这里执行的是修改属性的过程3 name = 'zbb_job1',
4 attribute = 'schedule_name',
5 value = 'ZBB_SCHEDULE');
6 end;
7 /
删除 job 及 scheduler:
SQL BEGIN
DBMS_SCHEDULER.DROP_JOB ( //删除job;多个job间用逗号隔开job_name = 'zbb_job2,zbb_job3',
force = TRUE);
END;
/
如何删除scheduler:
BEGIN
DBMS_SCHEDULER.DROP_SCHEDULE (
schedule_name = 'zbb_schedule',
force = true ); // 设为true 强制;false。
END;
/
如何修改job的属性(frequency:频率):
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE (
name = 'zbb_job1',
attribute = 'repeat_interval',
value = 'FREQ=DAILY'); //每天执行一次
END;
/
jobs创建时为“disabled”状态。我们必须手动“enable”它:
BEGIN
DBMS_SCHEDULER.ENABLE ('job1, job2, job3, sys.jobclass1, sys.jobclass2, sys.jobclass3'); /* sys.jobclass1下的所有jobs都会被enable */END;/END;
/
查看job的状态:
SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'MY_EMP_JOB1';查看Job Logs:
SELECT JOB_NAME, OPERATION, OWNER FROM DBA_SCHEDULER_JOB_LOG;查看Job 运行的详细情况:
select log_id, job_name, status, to_char(log_date, 'DD-MON-YYYY HH24:MI') log_date from dba_scheduler_job_run_detailswhere job_name = 'MY_JOB14';如何管理计划任务的权限:
GRANT SCHEDULER_ADMIN TO username;GRANT CREATE JOB TO scott;GRANT ALTER myjob1 TO scott;GRANT MANAGE SCHEDULER TO adam;PLSQL举例如下:
begin dbms_scheduler.create_job ( job_name = '测试', job_type = 'PLSQL_BLOCK', job_action = 'insert into job_test values(sysdate);', start_date = sysdate, end_date = add_months(sysdate,12000), repeat_interval = 'FREQ=MINUTELY; INTERVAL=1', enabled = true,comments = '定时执行计划任务' );
end;
以上代码可以通过在PLSQL Developer中新建Jobs轻松设定:
参数含义如下:
?JOB_NAME :指定任务的名称,必选值,注意要确保指定的名称唯一。
?JOB_TYPE :任务执行的操作类型,必选值,有下列几个可选值:
?PLSQL_BLOCK :表示任务执行的是一个PL/SQL匿名块。
?STORED_PROCEDURE :表示任务执行的是ORACLE过程(含PL/SQL PROCEDURE和JAVA PROCEDURE)。
?EXECUTABLE :表示任务执行的是一个外部程序,比如说操作系统命令。
?CHAIN :表示任务执行的是一个CHAIN。
?JOB_ACTION :任务执行的操作,必选值,应与JOB_TYPE类型中指定的参数相匹配。比如说对于PL/SQL匿名块,此处就可以放置PL/SQL块的具体代表,类似DECLARE .. BEGIN ..END这类;如果是ORACLE过程,那么此处应该指定具体的过程名,注意由于任务执行,即使过程中有OUT之类参数,实际执行时也不会有输出的。
?START_DATE :指定任务初次执行的时间,本参数可为空,当为空时,表示任务立刻执行,效果等同于指定该参数值为SYSDATE。
?REPEAT_INTERVAL :指定任务执行的频率,比如多长时间会被触发再次执行。本参数也可以为空,如果为空的话,就表示当前设定的任务只执行一次。 REPEAT_INTERVAL参数需要好好说说,REPEAT_INTERVAL
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流