Oracle PL-SQL函数未返回true

时间:2012-11-11 21:23:55

标签: oracle function plsql boolean return

我正在尝试编写一个函数,如果它已经在表中找到了帐户描述,则返回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异常 你的功能可以处理。)

1 个答案:

答案 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;
/