table 在 Oracle 数据库中未发现问题

table not found issue in oracle database

我在 运行 下面来自 sqldeveloper 的查询。

select  apps.inv_project.get_pjm_locsegs('concatenated_segments') from dual;

然后我就报错了。

我在包里搜索了一下table确实存在

 SELECT concatenated_segment_delimiter
        FROM apps.fnd_id_flex_structures
       WHERE id_flex_code = 'MTLL'
         AND ROWNUM = 1;

我是不是做错了什么?

我认为您发布的 SELECT 语句指向第 #1978 行(出现错误的地方)。

如果你能从tableSQL级别select,这意味着你有所需的权限。

但是,如果您不是 table 的所有者并通过 role 获得了权限,那么此类权限将无法在命名存储过程中使用(这是您的 inv_project.get_pjm_locsegs 函数,是程序包的一部分;对吗?)。

如果是这样,您应该将这些权限直接授予使用table(也就是apps)的用户。

此包定义为 authid current_user。它要么需要作为 APPS 数据库用户执行,要么将 current_schema 设置为应用程序,假定您已将所有必需的权限授予您当前登录的非应用程序数据库用户。

我看到您在 inv_project 的调用和 fnd_id_flex_structures 的查询前加上了 'apps.'。与其为每个 table 添加前缀,不如让您的 DBA 创建一个登录触发器来更改您的数据库帐户的架构,如下所述: how to set schema in oracle sql developer for oracle e business suite tables