ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle构造过程实例

oracle构造过程实例

原创 Linux操作系统 作者:alang85_cu 时间:2012-06-07 10:48:22 0 删除 编辑
 包的构造过程是没有任何名称的,它是在实现了包的其他过程之后,以begin开始,以end结束的部分。

1,包头

create or replace package pkg_emp is
  minsal number(6, 2);
  maxsal number(6, 2);
  procedure add_employee(eno    number,
                         name   varchar2,
                         salary number,
                         dno    number);
  procedure upd_sal(eno number, salary number);
  procedure upd_sal(name varchar2, salary number);
end pkg_emp;

2,包体

create or replace package body pkg_emp is

  procedure add_employee(eno    number,
                         name   varchar2,
                         salary number,
                         dno    number) is
  begin
    if salary between minsal and maxsal then
      insert into emp
        (empno, ename, sal, deptno)
      values
        (eno, name, salary, dno);
    else
      raise_application_error(-20001, '工资不在范围内');
    end if;
  exception
    when dup_val_on_index then
      raise_application_error(-20002, '该雇员已经存在');
  end;

  procedure upd_sal(eno number, salary number) is
  begin
    if salary between minsal and maxsal then
      update emp set sal = salary where empno = eno;
      if sql%notfound then
        raise_application_error(-20003, '不存在该雇员号');
      end if;
    else
      raise_application_error(-20001, '工资不在范围内');
    end if;
  end;

  procedure upd_sal(name varchar2, salary number) is
  begin
    if salary between minsal and maxsal then
      update emp set sal = salary where upper(ename) = upper(name);
      if sql%notfound then
        raise_application_error(-20004, '不存在该雇员号');
      end if;
    else
      raise_application_error(-20001, '工资不在范围内');
    end if;
  end;
 
--构造过程
begin
  select min(sal), max(sal) into minsal, maxsal from emp;
end;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20682026/viewspace-732124/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORACLE动态SQL笔记
请登录后发表评论 登录
全部评论

注册时间:2010-08-24

  • 博文量
    4
  • 访问量
    17462