使用Submit()过程,工作被正常地计划好。
这个过程有五个参数:job、what、next_date、interval与no_parse。

PROCEDURE Submit ( job OUT binary_ineger,
What IN varchar2,
next_date IN date,
interval IN varchar2,
no_parse IN booean:=FALSE)

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
what参数是将被执行的PL/SQL代码块。
next_date参数指识何时将运行这个工作。
interval参数何时这个工作将被重执行。
no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE
指示此PL/SQL代码在它第一次执行时应进行语法分析,
而FALSE指示本PL/SQL代码应立即进行语法分析。

在command window窗口中执行下面脚本

Oracle代码
  1. declarejob1number;
  2. begin
  3. dbms_job.submit(job=>:job1,
  4. what=>'CLEAN_DATA_P;',
  5. next_date=>sysdate,
  6. interval=>'sysdate+1/1440');--每天1440分钟,即一分钟运行CLEAN_DATA_P存储过程一次
  7. commit;
  8. dbms_job.run(:job1);
  9. end;
  10. /

查看创建的job
查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:

Oracle代码
  1. select*fromdba_jobs

2、运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:

Oracle代码
  1. begin
  2. dbms_job.run(:job);--:job为dba_jobs里面自己需要运行的jobid
  3. end;
  4. /

3、删除JOB

Oracle代码
  1. begin
  2. dbms_job.remove(:job);--:job为dba_jobs里面自己需要运行的jobid
  3. end;
  4. /
Oracle代码
  1. --绑定jobid
  2. variablejob1number;
  3. /
  4. --创建JOB每分钟执行一次
  5. begin
  6. dbms_job.submit(job=>:job1,
  7. what=>'CLEAN_DATA_P;',
  8. next_date=>sysdate,
  9. interval=>'sysdate+1/1440');
  10. commit;
  11. end;
  12. /
  13. --执行JOB
  14. begin
  15. dbms_job.run(:job1);
  16. end;
  17. /
  18. --删除JOB
  19. begin
  20. dbms_job.remove(:job1);--:job为dba_jobs里面自己需要运行的jobid
  21. end;
  22. /
  23. --创建JOB每天凌晨1点执行一次
  24. begin
  25. dbms_job.submit(job=>:job1,
  26. what=>'CLEAN_DATA_P;',
  27. next_date=>sysdate,
  28. interval=>'TRUNC(sysdate)+1+1/(24)');
  29. commit;
  30. end;
  31. /

附:CLEAN_DATA_P存储过程

Oracle代码
  1. CREATEORREPLACEPROCEDURECLEAN_DATA_PIS
  2. cursor_nameINTEGER;
  3. rows_processedINTEGER;
  4. R_CONFIGEIP_CLEAN_DATA_CONFIG%ROWTYPE;--记录当前行
  5. R_TABLE_SPACEEIP_CLEAN_DATA_CONFIG%ROWTYPE;--记录tablespace数据配置当前行
  6. R_CLEAN_DATAvarchar2(255);
  7. CURSORC_CONFIGIS
  8. SELECTC.ID,
  9. C.TABLE_NAME,
  10. C.CLEAN_INTERVAL,
  11. C.LAST_UPDATE_DATE,
  12. C.ENABLED_FLAG
  13. FROMEIP_CLEAN_DATA_CONFIGC
  14. WHEREC.ENABLED_FLAG='Y'
  15. ANDC.TABLE_NAME!='EIP_SWITCH_TABLE_SPACE'
  16. ORDERBYC.ID;--定义读取配置表不包含表空间切换的游标
  17. CURSORC_TABLE_SPACEIS
  18. SELECTC.ID,
  19. C.TABLE_NAME,
  20. C.CLEAN_INTERVAL,
  21. C.LAST_UPDATE_DATE,
  22. C.ENABLED_FLAG
  23. FROMEIP_CLEAN_DATA_CONFIGC
  24. WHEREC.ENABLED_FLAG='Y'
  25. ANDC.TABLE_NAME='EIP_SWITCH_TABLE_SPACE'
  26. ORDERBYC.ID;--定义读取配置表表空间切换的游标
  27. BEGIN
  28. BEGIN
  29. OPENC_CONFIG;
  30. LOOP
  31. FETCHC_CONFIG
  32. INTOR_CONFIG;
  33. EXITWHENC_CONFIG%NOTFOUND;
  34. selectto_char(sysdate-R_CONFIG.CLEAN_INTERVAL/24/60,
  35. 'yyyy-mm-ddHH24:MI:SS')
  36. intoR_CLEAN_DATA
  37. fromdual;--获得当前时间减去时间间隔的时间
  38. cursor_name:=dbms_sql.open_cursor;--动态执行删除SQL
  39. dbms_sql.parse(cursor_name,
  40. 'DELETEFROM'||R_CONFIG.TABLE_NAME||
  41. 'WHERELAST_UPDATE_DATE<=:x',
  42. dbms_sql.native);
  43. dbms_sql.bind_variable(cursor_name,
  44. ':x',
  45. to_date(R_CLEAN_DATA,'yyyy-mm-ddHH24:MI:SS'));
  46. rows_processed:=dbms_sql.execute(cursor_name);
  47. dbms_sql.close_cursor(cursor_name);
  48. ENDLOOP;
  49. CLOSEC_CONFIG;
  50. OPENC_TABLE_SPACE;
  51. LOOP
  52. FETCHC_TABLE_SPACE
  53. INTOR_TABLE_SPACE;
  54. EXITWHENC_TABLE_SPACE%NOTFOUND;
  55. IF0=R_TABLE_SPACE.CLEAN_INTERVAL
  56. THEN
  57. --对表空间作转移
  58. dbms_utility.exec_ddl_statement('ALTERTABLEEIP_PERFORMANCE_CPUMOVETABLESPACEHQGK_DATA_MV1');
  59. dbms_utility.exec_ddl_statement('ALTERTABLEEIP_PERFORMANCE_MEMORYMOVETABLESPACEHQGK_DATA_MV1');
  60. dbms_utility.exec_ddl_statement('ALTERTABLEEIP_PERFORMANCE_PROCESSMOVETABLESPACEHQGK_DATA_MV1');
  61. --更新当前操作标识,用于表空间转移
  62. UPDATEEIP_CLEAN_DATA_CONFIGCSETC.CLEAN_INTERVAL=1WHEREC.TABLE_NAME='EIP_SWITCH_TABLE_SPACE';
  63. ELSE
  64. dbms_utility.exec_ddl_statement('ALTERTABLEEIP_PERFORMANCE_CPUMOVETABLESPACEHQGK_DATA_MV');
  65. dbms_utility.exec_ddl_statement('ALTERTABLEEIP_PERFORMANCE_MEMORYMOVETABLESPACEHQGK_DATA_MV');
  66. dbms_utility.exec_ddl_statement('ALTERTABLEEIP_PERFORMANCE_PROCESSMOVETABLESPACEHQGK_DATA_MV');
  67. UPDATEEIP_CLEAN_DATA_CONFIGCSETC.CLEAN_INTERVAL=0WHEREC.TABLE_NAME='EIP_SWITCH_TABLE_SPACE';
  68. ENDIF;
  69. --重建索引
  70. dbms_utility.exec_ddl_statement('ALTERINDEXPK_EIP_PERFORMANCE_CPUREBUILD');
  71. dbms_utility.exec_ddl_statement('ALTERINDEXPK_EIP_PERFORMANCE_MEMORYREBUILD');
  72. dbms_utility.exec_ddl_statement('ALTERINDEXPK_EIP_PERFORMANCE_PROCESSREBUILD');
  73. COMMIT;
  74. ENDLOOP;
  75. CLOSEC_TABLE_SPACE;
  76. EXCEPTION
  77. WHENOTHERSTHEN
  78. dbms_sql.close_cursor(cursor_name);
  79. ROLLBACK;
  80. END;
  81. COMMIT;
  82. ENDCLEAN_DATA_P;
  83. /

oracle job 及存储过程案例相关推荐

  1. 『Oracle数据库容灾案例系列』国元证券Oracle容灾案例

    『Oracle数据库 容灾案例系列』   国元证券Oracle数据库容灾案例 使用产品:DDS 上线时间:2007 系统环境:Oracle 10g RAC  IBM AIX5L 应用系统:金正 证券 ...

  2. Oracle job procedure 存储过程定时任务

    Oracle job procedure 存储过程定时任务 oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 ...

  3. Oracle 触发器调用存储过程|转||待研究|

    Oracle触发器调用存储过程资料收集整理 触发器:Trigger 存储过程:Stored Procedure // ******************** 收集1 **************** ...

  4. 在ORACLE中对存储过程加密

    在ORACLE中对存储过程加密 2007年08月04日 星期六 下午 04:06 1 创建存储过程       create or replace procedure lb_test2 as begi ...

  5. oracle pl sql示例,oracle PL SQL学习案例(一)

    oracle PL SQL学习案例(一) [示例1.1]  查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...

  6. 过程 oracle 写在哪里,Oracle怎么写存储过程? 在什么地方写以及怎么调用?最好给个Sample 急(2)...

    当前位置:我的异常网» Java Web开发 » Oracle怎么写存储过程? 在什么地方写以及怎么调用 Oracle怎么写存储过程? 在什么地方写以及怎么调用?最好给个Sample 急(2) www ...

  7. Java中调用Oracle中的存储过程的单元测试代码

    Oracle中的存储过程: /* 创建一个存储函数,返回指定员工的姓名,薪水和年收入 */ create or replace function queryEmp2(eno in number, em ...

  8. oracle表的历史数据转储过程,C#连接Oracle数据库通过存储过程操作数据库 - cuizm的专栏 - CSDN博客...

    C#连接Oracle数据库通过存储过程操作数据库 收藏 此文于2011-06-07被推荐到CSDN首页 此文于2011-06-08被推荐到CSDN首页 如何被推荐? 之前笔者一直用C#连接SQL Se ...

  9. dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》

    [视频:dataguru北京线下沙龙-第二部 <Oracle 索引优化思路--案例分享 -- 刘盛> /微笑]

最新文章

  1. 营救Peter——下载XCode的六种姿势
  2. istringstream和ostringstream
  3. 液冷数据中心再获加持,北京数据中心PUE要低至1.118
  4. 1082 Read Number in Chinese (25 分)【难 / 模拟 字符串】
  5. VTK:BrownianPoints布朗点用法实战
  6. r语言 柱状图加星号_R语言绘制带有显著性字母标记的柱状图
  7. mipi和isp处理_图像信号处理 (ISP) 流水线
  8. [gdb][python][libpython] 使用gdb调试python脚本
  9. Dart网络编程-备忘录
  10. 江西 高职 分数 计算机,快讯!江西高职(专科)批次各高校投档分数线出炉…...
  11. 使用Duilib做的程序封装成DLL的显示加载与卸载问题
  12. C语言一个简单的贪吃蛇程序
  13. 安卓手机如何打开开发者模式?
  14. 谷歌浏览器怎么把阅读清单按钮放到书签栏?
  15. GitHub快速上手指南
  16. 简易双人坦克大战制作流程(二)
  17. OpenGL 立方体平行斜投影的绘制
  18. python 算法教程 pdf 英文_上手实践《Python机器学习第2版》PDF中文+PDF英文+代码+Sebastian...
  19. NX二次开发 布尔运算 UF_MODL_unite_bodies 布尔加
  20. 爱奇艺视频《哈利波特》怎么转换为mp4格式

热门文章

  1. input type属性为file时(type=file),上传一次然后做更新input的change事件
  2. 08Vue.js快速入门-Vue综合实战项目
  3. YUV格式文件转RGB格式
  4. mysql主备(centos6.4)
  5. PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
  6. 编程之美- 中国象棋将帅问题
  7. 写在通用权限管理系统销售200套,从刚开始求人家用到人家主动索取,写一下亲身感受...
  8. div+css布局与seo的关系
  9. 关于代码调用SSP获取UserProfile出错的解决方案
  10. 函数式编程之一柯里化