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

これはそれがすることになっていることです

アカウントの説明がすでにGeneral_Ledger_Accountsテーブルにあるかどうかをテストする1つのパラメーターを受け入れるtest_glaccounts_descriptionという名前の関数をコーディングします。この関数は、アカウントの説明がテーブルにある場合は1の値を返し、そうでない場合は0を返す必要があります。(注: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 に答える