使用DBMS_METADATA.GET_DDL需要什么Oracle特权?

时间:2020-03-06 14:33:16  来源:igfitidea点击:

(不好意思,我不是Oracle的老用户。)

我正在尝试使用DBMS_METADATA.GET_DDL函数(与ALL_OBJECTS或者某些类似的函数结合使用)来获取特定模式中所有表的DDL。当我执行此操作时(对于所有对象或者单个特定对象),都会收到ORA-31603错误(在模式" SCHEMA"中找不到表类型的"对象" FOO")。

我认为这意味着我登录的用户没有读取GET_DDL所需的元数据所需的任何特权。这需要什么特权?登录时是否有办法确认当前用户是否具有此特权?

谢谢!
背风处

解决方案

阅读本文档,但基本上,我们需要SELECT_CATALOG_ROLE

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1016867