Oracle:可以从PL / SQL函数中返回任何内容吗?

时间:2012-04-20 19:48:03

标签: sql oracle

正如标题所说,是否可以从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;

2 个答案:

答案 0 :(得分:13)

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;

答案 1 :(得分:4)

根据定义,函数返回一个值,因此您必须具有RETURN语句。查看Oracle文档中的syntax definition for a function。 RETURN不是一种选择。

我甚至不确定你为什么要这样做。