Oracle PL/SQL入门案例实践

 更新时间:2007年03月07日 00:00:00   作者:  
正在看的ORACLE教程是:Oracle PL/SQL入门案例实践。 前面已经了解了关于PL/SQL编程的基础,本文将结合一个案例来加深对这些知识点的理解。

  一. 案例介绍

  某数据库有两张表,是关于某公司员工资料、薪水和部门信息的,它们分别是emp表和dept表,两张表的结构如下:


  要求如下:

  1、按照上表结构建立相应的表,并每张表写入5组合法数据。

  2、操纵相关表,使得“技术部”的员工的薪水上涨20%。

  3、建立日志,追踪薪水变动情况。

  4、建立测试包。

  二. 案例的分析与实现

  从前面案例的介绍不难看出,要求1考察点为基本SQL语句;要求2主要考察复合查询;要求3是考察触发器的应用;要求4的考察面相对多一些,不仅考察了包的创建,而且也考察了在PL/SQL中的测试方法。了解了这些考察的知识点,就可以一一去解决。

  要求1:

  首先根据前面表的结构可以创建两张表:

  ——创建员工表


  ——部门表


  建立了表之后就可以往表里面写数据了,这里把添加表记录的代码写入到相应的存储过程。


  要求2:

  给指定部门的员工加薪,这实际上是一个复合查询,首先需要把所有该部门的员工塞选出来,然后对这些员工的薪水进行相应的改动。依照这一思路,代码如下:

  (需要注意的是:将要加薪的部门作为参数,这样的存储过程更有灵活性。)


  要求3:

  建立日志对薪水的变动情况形成一个追踪,也就是说,如果对某个职员的薪水进行变更就应该将其相应的变更记录全部记下来。如果对emp表的salary字段创建一个触发器,来监视对salary的更改,把每次更改进行记录,这样就达到了要求3的目的了。


  要求4:

  与其他语言(c/c++等)相比,PL/SQL的测试有其不同之处,归纳下来有三种方法:

  1、使用DBMS_OUTPUT包的PUT_LINE方法来显示中间变量,以此来观察程序是否存在逻辑错误。

  2、插入测试表的方法。即创建一个临时的中间表,然后把所有涉及到的中间变量的结果都作为记录插入到中间表中,这样可以查询表中的结果来观察程序的执行情况。

  3、使用异常处理手段,对可疑的程序段使用begin … end ,然后可以在exception里进行异常捕获处理。

  这里准备使用第二种方法来建立一个测试包,PL/SQL里包的概念类似于面向对象里的类的概念,包将一组操作和属性封装在一起,不仅增强了程序的模块化,而且由于封装了更多的操作和属性而提高了执行效能。建立一个PL/SQL需要两个步骤:首先要建立包头,类似于建立一个类的头文件,里面主要对包中的过程,函数和变量的声明;第二部分主要是包体部分,实现前面声明的过程和函数,另外还需要对包进行初始化等工作。

  根据这一思路,建立测试包如下:


  三.小结

  综合前面对4个问题的解答,基本把PL/SQL的主要部分融会进来了,虽然很多地方只是涉及到比较粗浅的层次,但是有了这一基础,深入下去也是不难的。

  总之,PL/SQL编程与其他语言编程有一定的区别,读者只有把握好其特点才能更好的掌握数据库开发的方面知识。

相关文章

  • Oracle数据库迁移所有文件到新挂载磁盘路径

    Oracle数据库迁移所有文件到新挂载磁盘路径

    根据实际须要,有时安装了oracle以后须要扩展磁盘空间时,每每是新增一个单独的文件路径并挂载存储,这时便须要总体迁移数据库文件数据库,本文就来介绍一下Oracle数据库迁移所有文件到新挂载磁盘路径
    2024-01-01
  • oracle drop table(表)数据恢复方法

    oracle drop table(表)数据恢复方法

    drop table删除表以后怎样可以恢复,本文整理了一些操作语句,感兴趣的朋友可以研究下,或许可以帮助到你
    2013-04-04
  • Access2000迁移到Oracle9i要点

    Access2000迁移到Oracle9i要点

    Access2000迁移到Oracle9i要点...
    2007-03-03
  • oracle在导入数据时报600错误的解决方法

    oracle在导入数据时报600错误的解决方法

    最近在工作中进行oracle数据库导入的时候遇到了600错误,通过查找相关的资料,最终终于解决了,下面这篇文章主要给大家介绍了关于oracle在导入数据时报600错误的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • Oracle触发器实例代码

    Oracle触发器实例代码

    Oracle触发器,用于选单后修改选单的表的触发动作。接下来通过本文给大家分享Oracle触发器实例代码,需要的的朋友参考下吧
    2017-04-04
  • PL/SQL 日期时间类型函数及运算

    PL/SQL 日期时间类型函数及运算

    PL/SQL 日期时间类型函数及运算...
    2007-03-03
  • 修改oracle密码有效期限制的两种思路详解

    修改oracle密码有效期限制的两种思路详解

    这篇文章给大家带来了修改oracle密码有效期限制的两种思路,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-09-09
  • Oracle Index 的三个问题

    Oracle Index 的三个问题

    Oracle Index 的三个问题...
    2007-03-03
  • oracle创建dblink方法示例

    oracle创建dblink方法示例

    这篇文章主要介绍了oracle创建dblink方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • ORA-06512数字或值错误字符串缓冲区太小异常详解

    ORA-06512数字或值错误字符串缓冲区太小异常详解

    最近工作中遇到了Oracle: ORA-06512:字符串缓冲区太小,报错的意思很简单,字符串缓冲区小了,这篇文章主要给大家介绍了关于ORA-06512数字或值错误字符串缓冲区太小异常的相关资料,需要的朋友可以参考下
    2023-01-01

最新评论