微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle函数成功编译,但在执行PLS-00221时抛出错误:不是过程或未定义

如何解决Oracle函数成功编译,但在执行PLS-00221时抛出错误:不是过程或未定义

我有简单的oracle功能

create or replace function abs.test_func(test_in in number)
return number
is
   test_out number ;
BEGIN
test_out:=test_in;
RETURN test_out;
END;

如果我编译它-编译成功。 但是当我从PLsql Developer sql窗口运行时

 BEGIN abs.test_func(5); END;

出现以下错误

ORA-06550: line1,column8;
PLS-00221: 'TEST_FUNC' is not a procedure or is undefined
ORA-06550: line1,column8;
PL/sql: Statement ignored

我的功能怎么了?

解决方法

您的create function代码看起来不错,但是您没有正确地调用该函数。函数会返回某些内容,您必须select,进行赋值,打印或评估。

以下是有效函数调用的一些示例:

-- print the return value
begin
    dbms_output.put_line(test_func(5));
end;
/

1 rows affected

dbms_output:
5


-- select the return value
select test_func(5) from dual;

| TEST_FUNC(5) |
| -----------: |
|            5 |

Demo on DB Fiddle

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。