广告
返回顶部
首页 > 资讯 > 数据库 >Oracle调度Schedule特性中的program分析
  • 476
分享到

Oracle调度Schedule特性中的program分析

2024-04-02 19:04:59 476人浏览 八月长安
摘要

本篇内容主要讲解“oracle调度Schedule特性中的program分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle调度Schedule特性中

本篇内容主要讲解“oracle调度Schedule特性中的program分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle调度Schedule特性中的program分析”吧!

program之于procedure的概念有点像操作系统层面的“程序”或者“应用”。但是program是由dba设定的,program是一个对象,一个可执行的对象。
program实际的操作可以分为三种类型:
PL/sql BLOCK      标准的PL/SQL代码块
STORED PROCEDURE编译好的PL/SQL存储过程、JAVA存储过程或者外部子程序
EXECUTEABLEoracle数据库之外的应用,比如操作系统命令

1、创建Programs使用DBMS_SCHEDULER.CREATE_PROGRAM过程
举个例子:
begin
  dbms_scheduler.create_program(program_name   => 'myprogram1',
                                program_action => '/bin/date',
                                program_type   => 'EXECUTABLE',
                                enabled        => TRUE);
end;
/

program_name    指定一个program的名称
program_type    指定program的类型,前面交代的三种类型
program_action     实际执行的操作,应与前面PROGRAM_TYPE参数关联使用。比如说前面指定了PROGRAM_TYPE为"PLSQL_BLOCK",那么此处要执行的action就应当是一段标准的pl/sql代码。
              如果前面指定PROGRAM_TYPE为"STORED_PROCEDURE",那么此处要执行的action就应当是ORACLE中定义好的存储过程(含Java存储过程),
              如果前面指定PROGRAM_TYPE为"EXECUTABLE",那么此处就应该指定外部命令的命令行信息(含路径信息)
NUMBER_OF_ARGUMENTS 指定支持的参数个数,默认值为0即没有参数。每个program最多能够支持255个参数,注意如果PROGRAM_TYPE设置为PLSQL_BLOCK,那么本参数自动忽略
ENABLED             指定是否将创建的program置为有效状态,默认情况下为false。
COMMENTS            注释信息。

Program的管理
创建完program之后,就涉及到program如何执行了,前面介绍CREATE_PROGRAM过程的参数时提到,每个program最多支持255个参数,要为program添加参数,可以通过DEFINE_PROGRAM_ARGUMENT过程。
不过在为其添加参数前,要注意program的NUMBER_OF_ARGUMENTS指定的数量,如果该值为0,那么为其添加参数时就会报错。
查询创建的program的信息,可以通过USER_SCHEDULER_PROGRAMS视图,例如:
SQL> select program_name,program_type,program_action,number_of_arguments,enabled from user_scheduler_programs;
PROGRAM_NAME                   PROGRAM_TYPE     PROGRAM_ACTION       NUMBER_OF_ARGUMENTS ENABL
------------------------------ ---------------- -------------------- ------------------- -----
MYPROGRAM1                     EXECUTABLE       /bin/date                              0 FALSE
前面创建program時並未指定NUMBER_OF_ARGUMENTS的值,因此我们这里需要首先修改该值为一个非0值,操作如下
begin
  dbms_scheduler.set_attribute('myprogram1','NUMBER_OF_ARGUMENTS',1);
end;
操作还是使用DBMS_SCHEDULER.SET_ATTRIBUTE过程。另外需要注意,program的NUMBER_OF_ARGUMENTS参数可是说想改就能改的,正常情况下该处理必须是在program处于enabled之前确认完毕,
否则会触发ORA-27465错误,因此要修改program的参数之前,必须首先确保要修改program的enabled状态为false。
那么对于已经处于enabled状态的program,如何修改其状态属性呢?其实很简单,前面操作jobs时使用的DBMS_SCHEDULER.DISABLE过程还记的吗?该过程对于program同样好使,并且调用方式也完全一样,例如:
begin
dbms_scheduler.disable('myprogram1');
end;
另外,如果希望将program置为enabled状态,执行DBMS_SCHEDULER.ENABLE过程即可,这里不再例举。
接下来,就可以为刚刚创建的my_program1添加路径参数,操作如下:
begin
  dbms_scheduler.DEFINE_PROGRAM_ARGUMENT(program_name      => 'myprogram1',
                                         argument_position => 1,
                                         argument_name     => 'dirpath',
                                         argument_type     => 'VARCHAR2',
                                         default_value     => '/home/oracle');
end;
/
查询为program定义的参数,可以通过USER_SCHEDULER_PROGRAM_ARGS视图
select program_name,argument_name,argument_position,argument_type default_value from user_scheduler_program_args;
PROGRAM_NAME                   ARGUMENT_NAME                  ARGUMENT_POSITION DEFAULT_VALUE
------------------------------ ------------------------------ ----------------- ----------------
MYPROGRAM1                     DIRPATH                                        1 VARCHAR2
2、删除program的argument操作也很简单,使用DROP_PROGRAM_ARGUMENT过程即可,例如:
begin
  dbms_scheduler.drop_program_argument('myprogram1','dirpath');
end;
该过程第一个参数指定program名称,第二个参数指定定义的argument名称,当然此处也可以指定argument的位置,即前例视图返回结果中的 ARGUMENT_POSITION 列值。
要删除program的话就更简单了,使用DROP_PROGRAM过程即可,例如:
begin
  dbms_scheduler.drop_program('myprogram1');
end;
当然啦,删除program的同时,也会删除该program对应的所有arguments。
实际上SCHEDULER中创建job时,也可以指定执行外部的程序。SCHEDULER中的Job更像是之前版本继承过来的JOBS,只不过10g中SCHEDULER管理的JOBS功能更加强大。

到此,相信大家对“Oracle调度Schedule特性中的program分析”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle调度Schedule特性中的program分析

本文链接: https://www.lsjlt.com/news/65337.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle调度Schedule特性中的program分析
    本篇内容主要讲解“Oracle调度Schedule特性中的program分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle调度Schedule特性中...
    99+
    2022-10-19
  • Oracle调度Schedule特性(第五部分)-schedule、program、job联合
    oracle 10g版本之后scheduler将job的属性分成了多个部分,program负责做什么,schedule负责啥时候做,job就简单了,一个字:干。 前面几篇文章,我们分别介绍了创建管理Jobs...
    99+
    2022-10-18
  • Oracle调度Schedule特性分析
    这篇文章主要介绍“Oracle调度Schedule特性分析”,在日常操作中,相信很多人在Oracle调度Schedule特性分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • Oracle调度Schedule特性chains分析
    本篇内容主要讲解“Oracle调度Schedule特性chains分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle调度Schedule特性chai...
    99+
    2022-10-19
  • Oracle调度Schedule特性(第一部分)-job
    在主机层面,我想要执行一些定时任务,通常会使用crontab。方便又实用,那么oracle里面是不是也有定时任务的概念呢? Oracle Scheduler的引入就是用来管理和计划数据库的Job,通过它可以...
    99+
    2022-10-18
  • Oracle调度Schedule特性是什么
    这篇文章主要讲解了“Oracle调度Schedule特性是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle调度Schedule特性是什么”吧!...
    99+
    2022-10-19
  • Oracle调度Schedule特性(第八部分)-Windows和Window Groups
    哈哈,关于schedule的内容还没完,本章讲Windows,通常说的Windows是指盖首富的操作系统,而此处所说的Windows, 是指SCHEDULER特性中的一个子项。在SCHEDULER中,WIN...
    99+
    2022-10-18
  • 分析PostgreSQL中的Prepare Transaction特性
    本篇内容介绍了“分析PostgreSQL中的Prepare Transaction特性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2022-10-18
  • Oracle 12c R2中ADG会话保留特性的示例分析
    这篇文章给大家分享的是有关Oracle 12c R2中ADG会话保留特性的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Oracle 12c R2中有一个不错的特性,那就...
    99+
    2022-10-18
  • 全面学习ORACLE Scheduler特性(5) Schedules调度Programs执行的Jobs
    同上 3.2 Schedules调度Programs执行的Jobs   通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明...
    99+
    2022-10-18
  • css3中新特性的示例分析
    这篇文章主要为大家展示了“css3中新特性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css3中新特性的示例分析”这篇文章吧。css3被拆分成如下的...
    99+
    2022-10-19
  • C#中属性和特性的示例分析
    这篇文章主要介绍C#中属性和特性的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先要说的是,可能一些刚接触C#的朋友常常容易把属性(Property)跟特性(Attribute)弄混淆,其实这是两种不同的东...
    99+
    2023-06-17
  • CSS特性中的继承性怎么分析
    这篇文章的内容主要围绕CSS特性中的继承性怎么分析进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获! 定义:给父元素...
    99+
    2022-10-19
  • Oracle 18c新特性-PDB快照轮播的示例分析
    这篇文章给大家分享的是有关Oracle 18c新特性-PDB快照轮播的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Oracle 18c推出的一个新功能就是PDB快照轮播...
    99+
    2022-10-18
  • Vue3中teleport新特性的示例分析
    Vue3中teleport新特性的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vue鼓励我们通过将UI和相关行为封装到组件中来构...
    99+
    2022-10-19
  • CSS3中媒体特性的示例分析
    这篇文章主要介绍了CSS3中媒体特性的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。CSS3 媒体特性与Responsive设计随着...
    99+
    2022-10-19
  • python中关于for else的特殊特性举例分析
    本篇内容主要讲解“python中关于for else的特殊特性举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中关于for else的特殊特性举例分析”吧!不管我们使用哪种编程...
    99+
    2023-06-25
  • CTF中的PHP特性函数实例分析
    这篇文章主要介绍“CTF中的PHP特性函数实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CTF中的PHP特性函数实例分析”文章能帮助大家解决问题。MD5强弱碰撞对于MD5加密大家一定很熟悉,...
    99+
    2023-07-05
  • ES9中新特性Async iteration的示例分析
    这篇文章将为大家详细讲解有关ES9中新特性Async iteration的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在ES6中,引入了同步iteration的概念,随着ES8中的Async操作...
    99+
    2023-06-14
  • Oracle 12c新特性之多线程数据库的示例分析
    这篇文章将为大家详细讲解有关Oracle 12c新特性之多线程数据库的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有一个概念,叫多进程和多线程。在Unix/Li...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作