oracle构造过程实例
? 包的構造過程是沒有任何名稱的,它是在實現了包的其他過程之后,以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;
轉載于:https://www.cnblogs.com/alang85/archive/2011/08/16/2140774.html
總結
以上是生活随笔為你收集整理的oracle构造过程实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#反射了解(转)
- 下一篇: SAP BW查看数据源提取方法