使用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