【发布时间】:2022-01-09 09:03:36
【问题描述】:
修订 ORA-06576:对于通过 dbeaver 数据库工具进行简单函数调用的无效函数或过程名称
我看过很多帖子,但没有涵盖我遇到的情况。
我正在尝试通过 dbeaver 对 Oracle SQL 进行简单的函数调用:
根据dbeaver获取的右键调用函数,函数语法为:
CALL OUR_DB.GET_YEAR_FROM_DATE(:INPUT_DATE);
更具体一点:
CALL OUR_DB.GET_YEAR_FROM_DATE('01/02/2024');
但是,我收到以下错误: ORA-06576: 不是有效的函数或过程名称
函数确实似乎编译正确。
我也尝试制作自己的函数(可能有语法错误),所以这可能是一个后续问题。
但是,我们的数据库中已经存在上述功能,应该可以正常工作。 假设这是真的,如何从 dbeaver 中调用它?
我正在使用: dbeaver 21.3
还有来自 SELECT * FROM v$version 的 ORACLE 是: Oracle Database 19c 标准版 2 版本 19.0.0.0.0 - 生产
为了它的价值,我使用了 Oracle SQL Developer 版本 4.1.4.21 有一个非常相似的错误,可能是更详细的错误信息:
CALL OUR_DB.GET_YEAR_FROM_DATE('01/02/2024');
Error report -
SQL Error: ORA-06576: not a valid function or procedure name
06576. 00000 - "not a valid function or procedure name"
*Cause: Could not find a function (if an INTO clause was present) or
a procedure (if the statement did not have an INTO clause) to
call.
*Action: Change the statement to invoke a function or procedure
这似乎表明问题实际上不是由于工具,而是底层数据库。
如果认为该语法有效,是否只是权限问题?
【问题讨论】:
-
错误信息很明确:“找不到函数(如果存在INTO子句)或过程 b>(如果语句没有INTO子句)调用。”
-
函数返回一个值。它应该有一个返回该值的地方。
标签: sql oracle function oracle-sqldeveloper dbeaver