正如标题所说,是否可以从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;
答案 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不是一种选择。
我甚至不确定你为什么要这样做。