我正在尝试编写一个函数,如果它已经在表中找到了帐户描述,则返回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 帐户描述在表中,如果不是,则为零。 (注意:如果是SELECT 语句不返回任何数据,它会抛出NO_DATA_FOUND异常 你的功能可以处理。)
答案 0 :(得分:4)
您需要从代码中的所有路径返回。
这样的事情应该有效:
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;
/