--包头
create or replace package empdo is
-- Created : 2009-9-17 11:00:54
-- Purpose : emp的增删改练习
--empin :插入数据
procedure empin(emp_no in emp.empno%type ,emp_name in emp.ename%type);
-- empup : 修改数据
procedure empup(emp_id in emp.id%type,emp_no in emp.empno%type,emp_name in emp.ename%type);
-- empdel : 删除数据
procedure empdel(emp_id in emp.id%type);
--empfindbyid : 通过ID查询数据
procedure empfindbyid(emp_id in out emp.id%type,
emp_no out emp.empno%type,emp_name out emp.ename%type);
procedure empfind(emp_id out emp.id%type,
emp_no out emp.empno%type,emp_name out emp.ename%type);
end empdo;
--包体
create or replace package body empdo is
procedure empin(emp_no in emp.empno%type ,emp_name in emp.ename%type)
is
begin
insert into emp values(empseq.nextval,emp_no,emp_name);
end empin;
procedure empup(emp_id in emp.id%type,emp_no in emp.empno%type,emp_name in emp.ename%type)
is
begin
update emp set empno=emp_no,ename=emp_name where id=emp_id;
end empup;
procedure empdel(emp_id in emp.id%type)
is
begin
delete from emp where id=emp_id;
end empdel;
procedure empfindbyid(emp_id in out emp.id%type,
emp_no out emp.empno%type,emp_name out emp.ename%type)
is
begin
select id,empno,ename into emp_id,emp_no,emp_name from emp where id=emp_id;
exception --异常
when no_data_found then
dbms_output.put_line(' 查找的数据不存在');
when others then
dbms_output.put_line('数据查找出现异常');
end empfindbyid;
procedure empfind(emp_id out emp.id%type, --out:输出的数据,in输入的数据
emp_no out emp.empno%type,emp_name out emp.ename%type)
is
cursor emp_find is select id,empno,ename from emp;--声明显示游标;
begin
open emp_find;
loop --oracle循环
fetch emp_find into emp_id,emp_no,emp_name; --游标的值是一行一行通过fetch获取。
dbms_output.put_line(emp_id||' '||emp_no||' '||emp_name);
exit when emp_find%notfound; --跳出循环的条件,不然会一直循环下去
end loop; --结束循环
close emp_find;
end empfind;
end empdo;