oracle ORA-00904:“DBMS_METADATA”.“GET_DATA”:无效标识符

72qzrwbm  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(165)

我得到ORA-00904:“DBMS_METADATA”.“GET_DATA”:运行dbms_metadata时出现无效标识符错误。
该错误是因为列名或别名错误。我不知道为什么我得到它。
下面是一些显示错误的代码:创建一个表:

create table test_table (
   column1 varchar2(300));

我插入一行数据:

insert into test_table values (55);

我试着为它找到答案:

SELECT DBMS_METADATA.GET_DDL('TABLE','test_table') FROM dual;

下面是错误:

>> SELECT DBMS_METADATA.GET_DDL('TABLE','test_table') FROM dual
       *
Error at line 1
ORA-00904: "DBMS_METADATA"."GET_DDL": invalid identifier

我检查了权限,似乎我有正确的权限:

select * FROM DBA_ROLE_PRIVS where granted_role = 'SELECT_CATALOG_ROLE';

我的用户(又名模式)在该列表中。
以下是我相信的文档:https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1016867

kknvjkwl

kknvjkwl1#

将此命令作为命令行运行:

grant execute on sys.dbms_metadata to public;

授予特定用户访问权限可能已经解决了当前的问题,但该包确实需要对整个系统可用。许多第三方程序依赖于DBMS_METADATA。默认情况下,该软件包应该被授予PUBLIC
一些旧版本的STIG(安全技术实现指南,几乎每个审计员都将其用作安全脚本的基础)将撤销对公共包的访问。但这是一个愚蠢的想法,即使在10年前,它不是在目前的STIG无论如何。

相关问题