欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle我以前的资料1.1

程序员文章站 2022-03-29 12:14:03
...
/**************题目1:根据编号查部门号*********************/
declare
  v_deptno naemp.EMPDEPTNO%type;
  v_empno naemp.EMPNO%type;
begin
  v_empno:=&请输入雇员编号;
  select empdeptno into v_deptno from naemp where empdeptno=v_empno;
  if sql%notfound  then
    dbms_output.PUT_LINE('没有这个雇员');
  else
    dbms_output.PUT_LINE('该雇员的编号为:'||v_deptno);
  end if;
exception
  when others then
    dbms_output.PUT_LINE('There is not such a empno');

end;

/*****************题目2:计算年收入************************/
declare
  v_empname naemp.EMPNAME%type;
  v_sal number;
begin
  v_empname:=&请输入雇员姓名;
  select empsal into v_sal from naemp where empname=v_empname;
  dbms_output.PUT_LINE('This employee has a hole year salary of  '||v_sal*12);

end;
/*******************题目3:计算加薪*****************/
declare
    v_no naemp.EMPNO%type;
    v_deptno naemp.EMPDEPTNO%type;
    v_sal naemp.EMPSAL%type;
    cursor emp_cur
    is
    select empno,empdeptno,empsal from naemp;
begin
    open emp_cur;
    dbms_output.PUT_LINE(emp_cur%rowcount);
    fetch emp_cur into v_no,v_deptno,v_sal;
    while emp_cur%found
    loop
        v_sal:=case v_no
                  when 10 then 1.05*v_sal
                  when 20 then 1.10*v_sal
                  when 30 then 1.15*v_sal
                  when 40 then 1.20*v_sal
                  else         v_sal
               end;      
        update naemp set empsal=v_sal where empno=v_no;
        fetch emp_cur into v_no,v_deptno,v_sal;
    end loop;
    close emp_cur;
    commit;
end;





相关标签: Oracle SQL