3

我正在尝试编写一个函数,如果它在表中找到帐户描述,则返回 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 异常。)

4

1 回答 1

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;
/
于 2012-11-11T21:31:29.137 回答