【发布时间】:2019-01-20 07:30:24
【问题描述】:
我的源数据库中存在一个函数(需要 2 个参数),我正在尝试使用数据库链接从另一个数据库调用它。我正在使用以下代码,但我不断收到错误消息:
SELECT SCHEMA.FUNC_NAME@DBLINK(PARAM1, PARAM2) FROM SCHEMA.TABLE_NAME@DBLINK;
这是我得到的错误:
ORA-00904: "SCHEMA"."FUNC_NAME": invalid identifier
【问题讨论】:
-
可能db链接连接的用户看不到该功能。
-
调用函数时是否需要指定特定的表?为什么不只是
SCHEMA.FUNC_NAME@DBLINK(PARAM1, PARAM2) FROM dual;? -
即使使用
dual,我也遇到了同样的错误 -
@samg - 它抱怨的是函数而不是表格,所以使用 dual 无济于事。作为数据库链接定义的一部分,您连接的用户需要对
schema.func_name(在远程数据库中)具有执行权限。 -
@BarryPiccinni - 这取决于函数是否由数据库链接连接到的同一用户拥有。在这种情况下,由于指定了模式并出现错误,因此它们看起来是不同的。这是有效的,只要正确的 privs 到位。 (并且该函数可能正在从远程表中传递值,这可以解释包括那个而不是双重的。但现在有点抽象。)
标签: sql oracle function plsql dblink