9

タイトルが示すように、PL/SQL 関数から何も返さないことは可能ですか?

私の機能は次のとおりです。戻り値を省略するとエラーが発生します。

create or replace
FUNCTION DeleteAttributes
(code IN varchar2)
CURSOR c_attributes = SELECT ...

BEGIN
    FOR attribute_record IN c_attributes
    LOOP
        ...
    END LOOP;
END;
4

2 に答える 2

17

Oracle PL/SQL 関数には戻り値が必要です。サブプログラムをプロシージャとして宣言すると、リターンがなくてもエラーは発生しません (プロシージャにリターンを指定することはできません)。

create or replace
PROCEDURE DeleteAttributes
(code IN varchar2)
CURSOR c_attributes = SELECT ...

BEGIN
    FOR attribute_record IN c_attributes
    LOOP
        ...
    END LOOP;
END;
于 2012-04-20T20:26:13.280 に答える
4

定義上、関数は値を返すため、RETURN ステートメントが必要です。Oracle ドキュメントで関数の構文定義を確認してください。RETURN はオプションではありません。

なぜあなたがこれをやりたいのかさえわかりません。

于 2012-04-20T20:30:11.277 に答える