`

Oracle PL/SQL中编写空操作的存储过程

阅读更多
  原创文章,转载请注明作者:黄文海 来源:http://viscent.iteye.com,同步发布在:http://blog.viscenthuang.info/2012/10/oracle-plsql中编写空操作的存储过程/
  尽管我们编写存储过程(Stored Procedure)是希望其完成一些特定的功能。但是在某些情况下,现有的存储功能所实现的功能可能已经不再需要或者我们打算采用其它方式来实现,此时为了实现对现有系统的最小改动量(以尽可能的减少对现有系统的影响),我们不能删除这个存储过程,但需要修改这个存储过程使其做空操作,即不实现任何实质性功能。
   但是,Oracle在编译存储过程时,对存储过程体的代码有所要求:1、存储过程所声明的所有参数,在存储过程体中必须使用到;2、存储过程体中所有声明或者计算出的变量值必须在本过程中要被使用到。因此,要实现存储过程的空操作,我们无法通过注释掉原有存储过程体中的所有代码来实现,因为注释后的代码根本无法通过编译。也就是说,我们需要一些特殊处理以实现存储过程实现空操作:将存储过程体的代码写为一个if语句,而该语句的条件永远无法成立,并且这个语句又使用到了存储过程定义的所有变量。这样便可以使存储过程编译通过,而在其具体运行时,又不实现任何实质功能。

   比如,下面的存储过程中,假设timeStamp表示的是系统当前时间距离1970年1月1日的秒数(因此,该值永远只会是正数,不会是负数)。
create or replace procedure ADisabledSP(timeStamp number,
tableName varchar2) is
begin
if timeStamp<0 then --该条件永远无法成立,且使用了输入参数timeStamp
dbms_output.put_line('We are going to operate on table ' || tableName); --使用了输入参数tableName
end if;
end;


  上面的代码,通过在if语句中指定“timeStamp<0”这一无法成立的条件,使得整个if语句体内的代码永远无法被执行,从而达到空操作的目的。并且,if语句中的条件子句以及语句体中使用了本存储过程定义的所有变量,保证了编译能够通过。
1
0
分享到:
评论

相关推荐

    pl/sql编写的模拟院校招生系统源码

    pl/sql编写的院校招生系统(通过包、存储过程、触发器、视图等完成的),可供学习oracle数据库pl/sql编程使用

    ORACLE PL/SQL 基础教程及参考

    在PL/SQL模块中可以使用查询语句和数据操纵语句(即进行DML操作),这样就可以编写具有数据库事务处理功能的模块。 至于数据定义(DDL)和数据控制(DCL)命令的处理,需要通过Oracle提供的特殊的DMBS_SQL包来进行。PL/SQL...

    Oracle_PLSQL语言基础

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL...

    PL/SQL Developer 9.0.4.1644 绿色中文版_带注册机

    PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。 PL/SQL Developer 是一个为 Oracle 数据库开发存储程序单元的集成开发环境(IDE) ,使用PL/SQL Developer,你能...

    PL/SQL Developer 6.05注册版-1

    PL/SQL Developer(pl/sql)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 &lt;br&gt;此版本包含注册文件和简体中文语言安装包 &lt;br&gt;Enhancements in PL/SQL Developer 7.1.5 ====================...

    PL/SQL Developer v8.0.zip

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PL/SQL 6.0 汉化版

    PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利的  . 对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle...

    PL/SQL Developer 7.1.5 注册版-3

    PL/SQL Developer(pl/sql 7.1.5)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 &lt;br&gt;此版本包含注册文件和简体中文语言安装包 &lt;br&gt;Enhancements in PL/SQL Developer 7.1.5 ==============...

    Oracle存储过程LP/SQL练习题(含答案)

    Oracle存储过程LP/SQL练习题(含答案) 几个练习题

    PL/SQL安装包

    PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等

    PL/SQL Developer

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    pl/sql developer 9 + 注册机

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PLSQL基础word

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL...

    PL/SQL Developer8.04官网程序_keygen_汉化

    PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。 主要特性  登录界面PL/SQL编辑器,具有语法加强、SQL和PL/SQL帮助、对象描述、代码助手、编译器提示、PL/SQL...

    PL/SQL Developer 8.03 2/2

    PL/SQL Developer 是一个为 Oracle 数据库开发存储程序单元的集成开发环境(IDE),使用 PL/SQL Developer,你能方便地创建你的客户端/服务器应用程序的服务器部分。 到目前为止,从最差处想,你还可以完成如下工作: ...

    PL/SQL Developer 7.1.5 注册版

    PL/SQL Developer(pl/sql 7.1.5)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 &lt;br&gt;此版本包含注册文件和简体中文语言安装包 &lt;br&gt;Enhancements in PL/SQL Developer 7.1.5 ==============...

    PL/SQL Developer 9.0 用户指南

    PL/SQL Developer 是一个为 Oracle 数据库开发存储程序单元的集成开发环(IDE),使用PL/SQL Developer,你能方便地创建你的客户端/服务器应用程序的服务器部分。 到目前为止,从最差处想,你还可以完成如下工作: • ...

    PL/SQL中编写Oracle数据库分页的存储过程

    此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集。 由于需要返回查询出来的结果集,...

Global site tag (gtag.js) - Google Analytics