我需要从oracle数据库读取一些数据库对象的结构。因此,我想执行以下操作:
select dbms_metadata.get_ddl('TABLE', 'MY_TABLE', 'OTHERUSER') from dual
如果我以OTHERUSER用户身份登录,效果很好。但是对于PROD,我只有一个用户,该用户具有同义词,并将该对象与该同义词一起使用。我可以使用ALL_TABLES来选择TABLE信息,在那里我看到所有者是OTHERUSER,但是当我以不同的用户身份运行上面的代码时,出现以下错误:
ORA-31603: object "MY_TABLE" of type TABLE not found in schema "OTHERUSER"
ORA-06512: at "SYS.DBMS_METADATA", line 6069
ORA-06512: at "SYS.DBMS_METADATA", line 8666
ORA-06512: at line 1
它完全在架构OTHERUSER上。我可以做些什么来使它运行?我可以从ALL_TABLES,ALL_INDEXES等中进行选择,因此无论如何我都可以阅读信息,所以这可能不是一个正确的问题,或者我错了吗?
我知道作为一种解决方法,我可以使用在OTHERUSER上下文中运行的过程,但这并不难看。
答案 0 :(得分:0)