Oracle PL-SQL 函数未返回 true
Posted
技术标签:
【中文标题】Oracle PL-SQL 函数未返回 true【英文标题】:Oracle PL-SQL function not returning on true 【发布时间】:2012-10-31 09:32:53 【问题描述】:我正在尝试编写一个函数,如果它在表中找到帐户描述,则返回 1,否则返回 0。
我可以让它返回 0 罚款,但我似乎无法让它返回 1
Create or replace function test_glaccounts_description
(
var_account_desc varchar2
)
return number
as var_status number
begin
select 1 into var_status
from general_ledger_accounts
where account_description = var_account_desc;
exception
when no_data_found then
var_status := 0;
return var_status;
end;
/
这是应该做的
编写一个名为 test_glaccounts_description 的函数,该函数接受一个参数 测试帐户描述是否已经在 General_Ledger_Accounts 表。此函数应返回值 1,如果 帐户描述在表中,如果不是,则为零。 (注意:如果选择 语句不返回任何数据,它会抛出 NO_DATA_FOUND 异常 你的函数可以处理。)
【问题讨论】:
【参考方案1】:您需要从代码中的所有路径返回。
这样的事情应该可以工作:
begin
select 1 into var_status
from general_ledger_accounts
where account_description = var_account_desc;
return var_status;
exception
when no_data_found then
var_status := 0;
return var_status;
end;
/
【讨论】:
啊,我不知道异常被认为是一个单独的部分,谢谢。以上是关于Oracle PL-SQL 函数未返回 true的主要内容,如果未能解决你的问题,请参考以下文章
通过添加嵌入在 PL-SQL(Oracle 函数)中的 select 子句来处理异常