Oracle创建函数,该函数实现计算某个部门的平均工资,传入部门编号参数 建立恰当异常处理

createorreplacefunctionget_avg_pay(num_deptnonumber)returnnumberis--创建一个函数,该函数实现计算某个部... create or replace function get_avg_pay(num_deptno number) return number is--创建一个函数,该函数实现计算某个部门的平均工资,传入部门编号参数
num_avg_pay number;--定义临时变量,保存某个部门的平均工资
nofounddeptno exception;
begin
select avg(sal) into num_avg_pay from emp where deptno=num_deptno;--获取某个部门的平均工资
return(round(num_avg_pay,2));--返回平均工资
if sql%notfound then
raise nofounddeptno;
end if

exception;

when nofounddeptno then --若此部门编号不存在
dbms_output.put_line('该部门编号不存在');
return(0)
end;

declare
v_avg number(20);
begin
v_avg:=get_avg_pay(9);
dbms_output.put_line(v_avg);
end;
问 如过输入上面的值。不返回任何异常的问题提示 如 rerun(0);或者在Output界面 有此编号不存在的语句。求大神。
怎么 让它显示 异常信息。。
展开
 我来答
fengchao723
推荐于2018-05-11 · TA获得超过242个赞
知道小有建树答主
回答量:318
采纳率:0%
帮助的人:147万
展开全部
Begin try

Delete from table1 where name=’abc’;

Insert into table2 values(value1,value2,value3);

End try

Begin Catch

SELECT ERROR_NUMBER() AS ErrorNumber,

ERROR_MESSAGE() AS ErrorMessage;

End

ERROR_NUMBER() 返回错误号。
    ERROR_SEVERITY() 返回严重性。
    ERROR_STATE() 返回错误状态号。
    ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
    ERROR_LINE() 返回导致错误的例程中的行号。
    ERROR_MESSAGE() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式