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 回答