`

一个简单的Oracle任务

阅读更多

http://www.cnblogs.com/tohen/archive/2008/11/17/1335186.html

 

 

一、在PLSQL中创建表:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->create   table  HWQY.TEST(CARNO  VARCHAR2 ( 30 ),CARINFOID  NUMBER )

 

 

二、在PLSQL中创建存储过程:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->create   or   replace   procedure  pro_test
AS
carinfo_id 
number ;
BEGIN
select  s_CarInfoID.nextval  into  carinfo_id  from  dual;
insert   into  test(test.carno,test.carinfoid)  values (carinfo_id, ' 123 ' );
commit ;
end  pro_test;

 

 

三、在SQL命令窗口中启动任务:
在SQL>后执行:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->VARIABLE jobno  number ;
begin
DBMS_JOB.SUBMIT(:jobno,
' pro_test; ' ,SYSDATE, ' sysdate+1/24/12 ' );
commit ;
end ;
/

 

 

四、跟踪任务的情况(查看任务队列):

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->SQL >    select  job,next_date,next_sec,failures,broken  from  user_jobs;

       JOB NEXT_DATE   NEXT_SEC           FAILURES BROKEN
-- -------- ----------- ---------------- ---------- ------
          1   2008 - 2 - 22  ? 01 : 00 : 00                    0  N


说明有一个任务存在了。
执行 select * from test t 查看定时任务的结果。可以看出定时任务是正常执行了的。

 

五、停止已经启动的定时任务:

先执行 select job,next_date,next_sec,failures,broken from user_jobs; 以查看定时任务的job号。
在SQL>中执行下面的语句停止一个已经启动的定时任务:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->begin
 dbms_job.remove(
1 );
commit ;
end ;
/


表示停止job为1的任务。
执行后显示如下:PL/SQL procedure successfully completed

 

六、查看进程数:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->show parameter job_queue_processes;
-- 必须>0,否则执行下面的命令修改:
alter  system  set  job_queue_processes = 5 ;

 

 

七、再创建一个任务(每5分钟执行一次):

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->variable jobno  number ;
begin
dbms_job.submit(:jobno, 
' pro_test; ' ,sysdate, ' sysdate+1/24/12 ' );
commit ;
end ;
 
/

 

建立一个定时任务后,在PLSQL中查看JOB,它的 sql语句类似的是如下:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->begin
sys.dbms_job.submit(job 
=>  :jobno,
what 
=>   ' pro_test; ' ,
next_date 
=>  to_date( ' 21-02-2008 17:37:26 ' ' dd-mm-yyyy hh24:mi:ss ' ),
interval 
=>   ' sysdate+1/24/12 ' );
commit ;
end ;
/

 

所以,创建一个任务的完整的格式是:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->variable jobno  number ;
begin
sys.dbms_job.submit(job 
=>  :jobno,
what 
=>   ' pro_test; ' ,
next_date 
=>  to_date( ' 21-02-2008 17:37:26 ' ' dd-mm-yyyy hh24:mi:ss ' ),
interval 
=>   ' sysdate+1/24/12 ' );
commit ;
end ;
/
-- 系统会自动分配一个任务号jobno。

 

 

八、 执行结果:

<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->select  job,next_date,next_sec,failures,broken  from  user_jobs;

JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
1   1   2008 - 2 - 22  AM  01 : 00 : 00   01 : 00 : 00   0  N
2   2   2008 - 2 - 21  PM  05 : 42 : 45   17 : 42 : 45   0  N
3   3   2008 - 2 - 21  PM  05 : 42 : 45   17 : 42 : 45   0  N

 

分享到:
评论

相关推荐

    oracle定时任务详解

    Oracle数据库中的定时任务(也称为作业或job)是Oracle系统中一个非常重要的子系统,它可以帮助用户自动执行一些常规性的任务,比如备份数据库、清理日志等。通过合理地利用Oracle定时任务,可以极大地提高系统的...

    oracle定时任务.txt

    要重新启用任务,则需要先删除原任务并重新创建一个新的任务。 #### 二、使用`DBMS_SCHEDULER` 在Oracle 10g及以后版本中,推荐使用更强大的`DBMS_SCHEDULER`包来替代`DBMS_JOB`。`DBMS_SCHEDULER`提供了更灵活的...

    任务计划+批处理实现Oracle数据库的定时备份

    以下是一个简单的Oracle数据库备份批处理文件(DYHX_SYS_bak.bat)示例: ```batch @echo off set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1 set PATH=%ORACLE_HOME%\bin;%PATH% set ORACLE_SID=your_sid ...

    oracle 定时任务,使用存储过程更新数据

    例如,以下是一个简单的示例: ```sql CREATE OR REPLACE PROCEDURE update_data AS BEGIN UPDATE your_table SET column = new_value WHERE condition; END update_data; / ``` 2. **创建调度器作业**:接下来,...

    利用windows任务计划调用oracle存储过程

    例如,一个简单的批处理文件可能包含以下内容: ```batch @echo off set ORACLE_HOME=C:\app\your_user\product\12.2.0\dbhome_1 set PATH=%ORACLE_HOME%\bin;%PATH% sqlplus user/pwd@database exec your_schema....

    使用PL/SQL Developer图形界面轻松实现oracle定期计划任务

    PL/SQL Developer是一款强大的Oracle开发工具,它提供了一个直观的图形用户界面(GUI),使得设置定期计划任务变得非常简单。下面将详细介绍如何使用PL/SQL Developer来创建Oracle的定期计划任务。 首先,我们要...

    Oracle定时执行存储过程

    oracle 是一个功能强大的关系型数据库管理系统,可以执行各种复杂的任务,其中包括定时执行存储过程。定时执行存储过程可以让 oracle 自动执行某些操作,而不需要人工干预。下面我们将详细讲解 oracle 中的定时执行...

    一个Oracle server process进程会消耗多少内存

    本文将基于新炬网络专家杨志洪的文章《一个Oracle server process进程会消耗多少内存》中的案例和经验分享,深入探讨Oracle Server Process进程的内存消耗情况,并提供一些实用的指导建议。 #### 二、Oracle Server...

    超简单oracle数据库导入导出

    本文将深入探讨“超简单Oracle数据库导入导出”这一主题,包括如何创建表空间、建立用户,以及如何高效地进行数据导入和导出。 首先,让我们了解一下表空间(Tablespace)。在Oracle数据库中,表空间是存储数据库...

    Oracle定时任务详解.docx

    例如,你可以使用Submit过程创建一个新的任务,使用Change过程修改任务的执行时间或频率,而Broken过程则可以帮助你在出现问题时修复或恢复任务。 查询当前数据库中的作业信息,可以使用`SELECT job, next_date, ...

    oracle简单客户端配置64位

    在某些情况下,我们可能并不需要完整的Oracle数据库服务器环境,而是只需要一个能够连接到远程Oracle数据库的轻量级客户端工具。在这种场景下,Oracle的PL/SQL Developer(PLSQL)和即时客户端(Instant Client)就...

    java连接oracle数据库最简单例子

    1. **JDBC驱动**:Oracle提供了一个JDBC驱动,通常以jar包的形式分发,例如`ojdbc.jar`或`ojdbc6.jar`。在给定的例子中,这个jar包包含连接Oracle数据库所需的类和方法。你需要将这个驱动添加到项目的类路径中,以便...

    一个简单易用的Oracle数据库备份脚本

    在为客户维护系统过程中,数据库的备份是必须要做的,这个备份脚本比较简单,可在任何一台装有Oracle客户端的机器上使用。要设为自动备份,可使用administrotor帐户创建计划任务(在控制面板中)。需要注意...

    cx_Oracle-7.3.0_oracle_cx_oracle_cx_Oracle7.3对应_python_jupyteror

    安装完成后,在Jupyter Notebook中,你可以使用cx_Oracle库连接到Oracle数据库,以下是一个简单的示例: ```python import cx_Oracle dsn = cx_Oracle.makedsn('hostname', 'port', 'service_name') connection = ...

    查询oracle数据库数据的一款简单工具

    总的来说,Golden32 v5.7.445作为一个Oracle数据库查询工具,提供了直观的用户界面和强大的SQL编辑功能,帮助用户高效地管理和操作数据库。无论你是数据库管理员还是开发者,都能从中受益,快速获取和分析数据库中的...

    Oracle2Oracle数据同步

    Oracle到Oracle的数据同步是一个常见的需求,特别是在企业级应用中,为了保证多个数据库实例间的数据一致性,需要进行实时或定时的数据同步。在这个场景中,我们关注的是如何在两个不同的Oracle数据库之间实现数据表...

    C#+oracle简单工作流

    在这个"C#+Oracle简单工作流"的项目中,我们将探讨如何利用C#编程语言和Oracle数据库来创建一个简单的工作流系统。以下是相关知识点的详细说明: 1. **C#编程语言**:C#是微软公司开发的一种面向对象的、类型安全的...

    OracleClient-19C Oracle客户端,包括windows和Linux

    6. **instantclient**:Oracle Instant Client是一个轻量级的客户端版本,用于只读访问或者简单的数据查询,不需要完整的Oracle Client安装。 Oracle Client在Linux上的安装通常涉及设置环境变量,如ORACLE_HOME、...

    navicat连接oracle插件

    1. 界面友好:Navicat提供了一个直观的图形用户界面,使得数据库管理和操作更加简单易行。 2. 多数据库支持:除了Oracle,Navicat还支持MySQL、PostgreSQL、SQL Server等多种数据库系统,方便在不同数据库间切换。 3...

Global site tag (gtag.js) - Google Analytics