1. 要做什么
如何使用Oracle存储过程结合定时Job来达到定时删除指定数据库表数据的目的。
2. 大致过程
- 新建两张测试表格
- 编写insert存储过程和delete存储过程
- 测试存储过程
- 编写insert定时Job和delete定时Job
- 测试定时Job
3. 参考文章
4. 准备工作
- 使用PL/SQL Developer作为连接和开发工具。
- 使用SYS账户以dba身份登录。
- 使用CRXJ_COLLECT作为当前用户模式。
- 两张表名:crxj_collect.TEST_TABLE; crxj_collect.TEST_TABLE_2;
- 每10秒执行Job的Interval写法:sysdate+ 10/(24*60*60)
- 每60秒执行Job的Interval写法:sysdate+ 60/(24*60*60)
5. 建测试表
-- 创建 crxj_collect.test_table 表 create table crxj_collect.test_table ( seq number(8) primary key, seqtime date ); -- 创建 crxj_collect.test_table_2 表 create table crxj_collect.test_table_2 ( seq number(8) primary key, seqtime date );
6. 创建存储过程
-- 创建insert存储过程 create or replace procedure crxj_collect.test_insert_proc is begin insert into crxj_collect.test_table(seq, seqtime) values(NVL((SELECT MAX(seq) FROM crxj_collect.test_table) +1, 0),sysdate); insert into crxj_collect.test_table_2(seq, seqtime) values(NVL((SELECT MAX(seq) FROM crxj_collect.test_table) +2, 0),sysdate); commit; exception when others then dbms_output.put_line('Exception happened,data was rollback!'); rollback; end test_insert_proc; -- 创建delete存储过程 create or replace procedure crxj_collect.test_delete_proc is begin delete from crxj_collect.TEST_TABLE; delete from crxj_collect.TEST_TABLE_2; commit; exception when others then dbms_output.put_line('Exception happened, data will rollback!'); rollback; end test_delete_proc;
使用Command Window来执行存储过程:
SQL> SQL> create or replace procedure crxj_collect.test_delete_proc is 2 begin 3 delete from crxj_collect.TEST_TABLE; 4 delete from crxj_collect.TEST_TABLE_2; 5 commit; 6 exception 7 when others then 8 dbms_output.put_line('Exception happened, data will rollback!'); 9 rollback; 10 end test_delete_proc; 11 / Procedure created SQL>
7. 测试存储过程
右击待测试的存储过程(注意下图是以另外一个存储过程作为例子,但是操作步骤一样)
Start debugger -> Run
可以在DBMS Output栏目查看是否有错误消息。
可以查看是否正常执行存储过程(删除数据)。
8. 编写定时Job
-- 创建定时insert Job var job_num number; begin dbms_job.submit(:job_num,'crxj_collect.test_insert_proc;',sysdate,'sysdate + 10/(24*60*60)'); end; -- 创建定时delete Job var job_num number; begin dbms_job.submit(:job_num,'crxj_collect.test_delete_proc;',sysdate,'sysdate + 60/(24*60*60)'); end;
9. 检测Job是否创建成功
select * from user_jobs;
可以到对应测试表查看数据
经过观察,insert执行和delete执行皆正常。
完成。
*10. 修改JOB
如果你需要修改的话,请这样:
begin dbms_job.change (24,'crxj_collect.test_delete_proc;',sysdate,'SYSDATE + 1/24'); end;
first created by ifuteng#gmail.com 2014/4/15
相关推荐
PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库中的一个扩展,结合了SQL的查询能力与过程化编程语言的特点,为数据库管理和开发提供了强大的工具。本资源“PL/SQL examples”提供了一...
Oracle PL/SQL编程是Oracle数据库管理系统中的重要组成部分,它是一种过程化语言,允许开发者编写复杂的数据库应用程序。在本次实验中,我们将重点学习PL/SQL的基本语法、控制结构、复合数据类型以及异常处理技术。 ...
Oracle PL/SQL是一种强大的编程语言,它将SQL与过程编程语言的功能结合起来,为数据库管理和开发提供了丰富的工具。在Oracle环境中,PL/SQL是构建高效、可靠应用程序的关键组件。以下是对"Oracle PL/SQL常用47个工具...
《Oracle PL/SQL Packages and Types Reference》是一本针对Oracle数据库编程的重要参考资料,主要涵盖了PL/SQL包和类型的详细信息。这本书对于那些具有英文阅读能力的开发者来说,是开发过程中的重要工具,能够帮助...
PL/SQL是Oracle数据库支持的一种过程化编程语言,用于编写存储过程、函数、触发器等数据库对象。在11g Release 2中,PL/SQL进一步增强了其功能和性能,提供了更丰富的内置包和类型,以支持更高效、更灵活的数据库...
Oracle PL/SQL是Oracle数据库系统中的过程化语言,它结合了SQL的数据库操作能力和传统的编程语言特性,使得开发者能够创建复杂的数据处理逻辑和业务规则。《Oracle PL SQL专家指南:高级PLSQL解决方案的设计与开发》...
### 绝对好的 Oracle PL/SQL 编程 #### 一、PL/SQL 程序设计简介 ##### 1.1 SQL 与 PL/SQL **1.1.1 什么是 PL/SQL?** PL/SQL(Procedure Language for SQL)是一种专门为 Oracle 数据库设计的过程化语言。它结合...
8. **作业调度**:可以创建和管理DBMS_JOB或DBMS_SCHEDULER作业,定时执行PL/SQL脚本或任务。 9. **安全性**:工具提供了对用户权限和安全性的管理,可以分配角色、权限,确保数据库的安全运行。 10. **性能优化**...
PL/SQL可以直接调用Oracle提供的各种API,如DBMS_OUTPUT用于调试,DBMS_STATS用于统计分析,或者DBMS_JOB用于计划任务等,极大地丰富了功能。 总之,PL/SQL是Oracle数据库中不可或缺的一部分,它的强大功能使得...
在Oracle中,PL/SQL API通常表现为一组预定义的包,例如DBMS_OUTPUT用于调试,DBMS_ALERT用于异步通知,DBMS_LOCK用于锁定机制,DBMS_JOB用于计划任务等。这些包提供了丰富的功能,允许开发者执行各种数据库操作,而...
PL/SQL是Oracle数据库的一种编程语言,它结合了SQL(结构化查询语言)与过程编程语言的功能,使得数据库管理和应用程序开发更加便捷。本篇笔记主要涵盖了PL/SQL的基础语法和常用操作,包括检索数据、操纵数据以及SQL...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与Procedural Language的控制结构,用于在Oracle数据库环境中创建复杂的应用程序。本压缩包包含的文档专注于PL/SQL的开发技巧和性能优化策略,对于...
PL/SQL(程序化SQL)是Oracle数据库的标准编程语言,它扩展了SQL的功能,允许在数据库环境中编写过程化的业务逻辑。在PL/SQL中,可以嵌入多种类型的SQL语句来实现复杂的数据处理任务。根据标题和描述中的内容,我们...
### Oracle PL/SQL 编程手册(SQL大全)关键知识点解析 #### 一、SQL PLUS基础命令及用法 ##### 1. 引言与SQL命令概述 - **SQL命令关键字**:在Oracle环境下,共有17个关键字可以作为SQL语句的开头。包括: - `...
本次实验主要聚焦于Oracle数据库中的PL/SQL编程技术,包括存储过程、存储函数等高级特性。通过编写这些存储过程和函数来处理具体的业务逻辑,比如查询特定员工的信息、更新员工薪资等。实验共涉及三个主要任务:第4...
PL/SQL(Procedural Language for SQL)是Oracle数据库系统中的一种过程化编程语言,它结合了SQL的数据处理能力与传统过程化语言的控制结构,使得在数据库内部进行复杂逻辑处理成为可能。以下是PL/SQL能够实现的主要...
PL/SQL部分未在提供的内容中出现,但它是Oracle的扩展,允许编写存储过程、函数、触发器等,增强了SQL的功能。它结合了SQL查询与过程式编程语言,使数据库管理更加灵活和高效。 这些笔记提供了学习SQL和Oracle...
根据提供的文件信息,本文将对Oracle PL/SQL编程的相关知识点进行详细介绍。主要内容涵盖随附光盘中的内容介绍、从PL/SQL调用存储过程的方法及其限制条件,以及Oracle内置包的具体功能。 ### 随附光盘内容 #### 1....
PL/SQL(Procedural Language for SQL)是Oracle为支持其数据库产品而设计的一种专有的过程化语言。它将SQL命令与过程化语句结合在一起,能够直接在数据库中编写复杂的数据库应用程序。 **1.2 PL/SQL的好处** - **...
### Oracle 8i 提供的 PL/SQL 包参考知识点 #### 一、概述 《Oracle 8i Supplied PL/SQL Packages Reference》是Oracle官方为数据库管理员(DBA)和开发人员提供的一本权威指南。该书主要介绍了Oracle 8i版本中...