wystan
create or replace procedure add_em
(eno number,name varchar2,sal number,
job varchar2 default \'CLERK\',dno number)
is
e_integrity exception;
pragma exception_init(e_integrity,-2291);
begin
insert into emp(empno,ename,sal,job,deptno)
values (eno,name,sal,job,dno);
exception
when dup_val_on_index then
raise_application_error(-20000.\'雇员编号不能重复\');
when e_integrity then
raise_application_error(-20001,\'部门编号不存在\');
end;
/

create or replace function get_val(name in varchar2)
return number
as
v_sal emp.sal%TYE;
begin
select sal into v_sal from empwhere upper(ename)=uper(name);
return v_sal;
exception
when no_data_found then
raise_application_error(-20000,\'该雇员不存在\');
end;
/

create or replace package emp_package is 
function get_name(no number) return varchar2;
procedure add_employee(
no number,name varchar2,salary number,dno number);
procedure update_sal(name varchar2,salary number);
procedure fire_employee(name varchar2);
procedure fire_employee(no number);
end;
/

create or replace package body em_package
is
function get_name(no number) return varchar2 is 
name varchar2(10);
begin
select ename into name from emp where empno=no;
return name;
end;
procedure add_employee(no number,name varchar2,salary number,dno number)
is
begin
insert into emp (empno,ename,sal,depno)
values (no,name,salary,dno);
end;
procedure update_sal(name varchar2,salary number)
is
begin
update emp set sal=salary
where upper(ename)=upper(name);
end;
procedure fire_employee(name varchar2)
is
begin
delete from emp where upper(name)=upper(name);
end;
procedure fire_employee(no number)
is 
begin
delete from emp where empno=no;
end;
end emp_package;
/

commit;

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-29
  • 2021-11-30
  • 2022-01-29
  • 2022-02-01
  • 2021-12-17
  • 2021-07-14
猜你喜欢
  • 2021-04-02
  • 2021-07-02
  • 2021-10-04
  • 2021-09-07
  • 2022-12-23
  • 2021-12-04
  • 2021-10-01
相关资源
相似解决方案