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界面 有此编号不存在的语句。求大神。
怎么 让它显示 异常信息。。 展开
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界面 有此编号不存在的语句。求大神。
怎么 让它显示 异常信息。。 展开
1个回答
展开全部
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() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
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() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询