问题描述
嗨,团队成员
我的任务是维护下面类似的代码。
函数从状态返回描述
代码表。
异常NO_DATA_FOUND被编码为进行加注。
当我用 “坏” 状态代码测试函数时
值,从双重工作中选择,一个空行
是用蟾蜍归还的。
有一个用NVL编码的返回,它不会
当出现NO_DATA_FOUND异常时执行。
当我使用函数对查询进行编码时
具有良好和不良 (或缺失) 状态代码的表
值查询工作返回
良好状态代码,对于不良状态代码为null。
加薪有什么成就?
谢谢
查尔斯
---------------------------------------
---------------------------------------
我的任务是维护下面类似的代码。
函数从状态返回描述
代码表。
异常NO_DATA_FOUND被编码为进行加注。
当我用 “坏” 状态代码测试函数时
值,从双重工作中选择,一个空行
是用蟾蜍归还的。
有一个用NVL编码的返回,它不会
当出现NO_DATA_FOUND异常时执行。
当我使用函数对查询进行编码时
具有良好和不良 (或缺失) 状态代码的表
值查询工作返回
良好状态代码,对于不良状态代码为null。
加薪有什么成就?
谢谢
查尔斯
---------------------------------------
select get_state_name('ZZ') from dual; ---------------------------------------
create function get_state_name
(p_state_cd_in in varchar2)
return varchar2
is
---- Variables
v_state_name varchar2(50) := null;
begin
select state_name
into v_state_name
from state
where state_cd = p_state_cd_in
and rownum < 2;
return nvl(v_state_name,'NA');
exception
when no_data_found
then raise;
end get_state_name;专家解答
有
什么也不做-它只是重新注册异常。这里的处理程序是没有价值的。
只有当state.state_name的值可以为null时,NVL才会在这里发挥作用。
请注意,SQL和PL/SQL之间有一个微妙的区别-在SQL中调用NDF时不会引发。但是它在PL/SQL中:
exception when ANY_EX then raise;
什么也不做-它只是重新注册异常。这里的处理程序是没有价值的。
只有当state.state_name的值可以为null时,NVL才会在这里发挥作用。
请注意,SQL和PL/SQL之间有一个微妙的区别-在SQL中调用NDF时不会引发。但是它在PL/SQL中:
create or replace function f ( p varchar2 )
return int as
retval int;
begin
select 1
into retval
from dual
where dummy = p;
return retval;
end f;
/
var v varchar2(1);
exec :v := f ( 'Y' );
ORA-01403: no data found
select f ( 'Y' ) from dual;
F('Y')
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




