Oracle函数.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:4 大小:27KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Oracle函数.doc

Oracle函数.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.创建一个存储过程,以员工号为参数,输出该员工的工资。CREATEORREPLACEPROCEDURESHOWSAL(p_empnoemp.empno%type)ASv_salemp.sal%TYPE;BEGINSELECTsalINTOv_salFROMempWHEREempno=p_empno;DBMS_OUTPUT.PUT_LINE(v_sal);END;beginshowsal(7844);end;3.创建一个存储过程,以员工号为参数,返回该员工的工作年限。CREATEORREPLACEPROCEDUREreturnyear(p_empnoemp.empno%type,p_dateoutnumber)asBEGINselectfloor((sysdate-hiredate)/365)intop_datefromempwhereempno=p_empno;END;declarep_datenumber(2);beginreturnyear(7844,p_date);DBMS_OUTPUT.PUT_LINE(p_date);end;4.创建一个存储过程,以部门号为参数,输出入职日期最早的10个员工的信息。CREATEORREPLACEPROCEDUREshowdate(p_deptnoemp.deptno%type)AScursorc_dateisselect*fromempwheredeptno=p_deptnoandrownum<11orderbyhiredatedesc;BEGINforvinc_dateloopDBMS_OUTPUT.PUT_LINE(v.hiredate);endloop;END;beginshowdate(10);end;以部门号为参数,输出部门的最高工资,分别以存储过程,函数的方式实现。CREATEORREPLACEPROCEDUREshow_p(v_deptnoemp.deptno%type)asv_maxsalemp.sal%TYPE;beginselectmax(sal)intov_maxsalfromempwheredeptno=v_deptno;DBMS_OUTPUT.PUT_LINE(v_maxsal);end;execshow_p(20);CREATEORREPLACEFUNCTIONshow_f(p_deptnoemp.deptno%TYPE)RETURNemp.sal%TYPEASv_maxsalemp.sal%TYPE;BEGINSELECTmax(sal)INTOv_maxsalFROMempWHEREdeptno=p_deptno;RETURNv_maxsal;END;select*fromempwheresal=show_f(20);declarev_maxsalemp.sal%type;beginshow_p(20);v_maxsal:=show_f(20);DBMS_OUTPUT.PUT_LINE(v_maxsal);end;