怎删改查pl/sql包

原创 2012年03月29日 13:48:44
1、创建表test,表定义如下:
empno number(2),
ename varchar2(10),
sal number(7,2)
empno是主健 
2、创建包的声明test_pak,内容包含add_user过程、del_user过程(根据empno值删除用户)、add_sal函数(根据

empno值确定用户,增加员工工资,并返回该用户的工资)
3、创建包体,实现上述定义 
4、调用上述的每部分,验证正确性

包体--------------------------------------------------
create or replace package body test_pak 
IS
  PROCEDURE add_user(
      no   test_zuoye.empno%TYPE,
      nam   test_zuoye.ename%TYPE,
      sal   test_zuoye.sal%TYPE
                     )
  IS
  BEGIN
  INSERT INTO test_zuoye VALUES(no,nam,sal);
  COMMIT;
  END add_user;
  
   PROCEDURE del_user(
     no   test_zuoye.empno%TYPE
                                 )
    IS
  BEGIN
  DELETE FROM test_zuoye WHERE empno = no;
  COMMIT;
  END del_user;
  
   PROCEDURE add_sal (
          no test_zuoye.empno%TYPE,
          sasl test_zuoye.ename%TYPE,
          salary OUT test_zuoye.sal%TYPE
                     )
   IS
   var test_zuoye.ename%TYPE;
  BEGIN
  UPDATE test_zuoye SET sal = sasl +sal
  WHERE empno = no;
  SELECT sal 
  INTO var
  FROM test_zuoye WHERE empno = no;
  salary := var;
    EXCEPTION  -------------------------------异常处理,如果没有找到数据打印下面的内容
  WHEN NO_DATA_FOUND THEN
  dbms_output.put_line('没有找到数据');
  END add_sal;

end test_pak;
包头-------------------------------------------------------
create or replace package test_pak IS
       PROCEDURE add_user(
      no   test_zuoye.empno%TYPE,
      nam   test_zuoye.ename%TYPE,
      sal   test_zuoye.sal%TYPE
                     );
         PROCEDURE del_user(
     no   test_zuoye.empno%TYPE
                                 );
         PROCEDURE add_sal (
          no test_zuoye.empno%TYPE,
          sasl test_zuoye.ename%TYPE,
          salary OUT test_zuoye.sal%TYPE
                     );             
end test_pak;
测试-------------------------------------------------------
declare 
  
  var test_zuoye.sal%TYPE;
begin
-- test_pak.add_user(2,'kitty',3000);
  --  test_pak.del_user(1);
    test_pak.add_sal(2,50,var);
  
end;
---------------------------当添加工资找不到数据室打印
没有找到数据




 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oracle(pl/sql)包、存储过程的增、删、查、改等操作的实现(源代码)

--创建存储过程 create or replace package pkg_rights is        -- Author : Keleesy        -- C...

Oracle速查语法:PL/SQL

目录 基本结构 游标 PL/SQL表 PL/SQL 记录类型 REF 游标 过程 函数 数据包 触发器 自定义对象 其他 PL/SQL 结构DECLARE --声明部分 ...

ORACLE PL/SQL编程之八:把触发器说透(写的太长了,建议没事的时候看,想快速查怎么用触发器的不要看)

把触发器说透    大家一定要评论呀,感谢!光发表就花了我将近一个下午。 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器...

PL/SQL developer 工具中文包

  • 2017-09-15 15:54
  • 2.47MB
  • 下载

PL/SQL入门——基础的增删改查

最近由于做毕设,又重新看了一遍王珊和萨师煊老师编写的《数据库原理概论》(第四版),再利用PL/SQL将书中最基础的增删改查实现了一遍 所有操作是对以下三个表进行的 学生表Student ...

PL/SQL安装包

  • 2017-08-25 11:22
  • 43.49MB
  • 下载

PL/SQL9.0中文包

  • 2014-08-13 16:50
  • 392KB
  • 下载

PL/SQL编程之七-包

7.1  程序包简介     程序包(PACKAGE,简称包)是一组相关过程、函数、变量、常量和游标等PL/SQL程序设计元素的组合,作为一个完整的单元存储在数据库中,用名称来标识包。它具有面向对象...

PL/SQL 10.0汉化包

  • 2014-11-11 16:44
  • 5.06MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)