请教DBMS_METADATA.GET_DDL报错 error stack

xhzlhc 2012-08-28 01:22:38
pl/sql执行

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
FROM ALL_TABLES u
WHERE u.owner = 'COMM' and u.nested='NO'
AND (u.iot_type is null or u.iot_type='IOT');

error stack


CMD窗口执行

SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
2 FROM ALL_TABLES u
3 WHERE u.owner = 'COMM' and u.nested='NO'
4 AND (u.iot_type is null or u.iot_type='IOT');
ERROR:
ORA-31603: 对象 "AAAA" 属于类型 TABLE, 在方案 "SYS" 中未找到
ORA-06512: 在 "SYS.DBMS_METADATA", line 1968
ORA-06512: 在 "SYS.DBMS_METADATA", line 2011
ORA-06512: 在 "SYS.DBMS_METADATA", line 2343
ORA-06512: 在 "SYS.DBMS_METADATA", line 3247
ORA-06512: 在 "SYS.DBMS_METADATA", line 4863
ORA-06512: 在 line 1


我看网上的解释是共享池和java pool太小了 我手动更改了一下 还是报这个错

在此请教各位高手了
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhzlhc 2012-09-01
  • 打赏
  • 举报
回复
楼上的哥哥 谢谢啦 用你的方法搞成了
xhzlhc 2012-08-29
  • 打赏
  • 举报
回复
谢谢楼上的哥哥 我每天去试试
jdsnhan 2012-08-29
  • 打赏
  • 举报
回复
提示很明确,ORA-31603: 对象 "AAAA" 属于类型 TABLE, 在方案 "SYS" 中未找到
这个表是用户 COMM的,而不是sys的。
所以,再调用的时候,应该加上属主参数
DBMS_METADATA.GET_DDL('TABLE',u.table_name,'COMM');
xhzlhc 2012-08-29
  • 打赏
  • 举报
回复
不行还是老样子 搞不定哦
fw0124 2012-08-28
  • 打赏
  • 举报
回复
数据量太大了,那就写个循环来取吧

begin
for rec in (
select table_name from all_tables u
where u.owner = 'COMM' and u.nested='NO'
and (u.iot_type is null or u.iot_type='IOT')) loop
dbms_output.put_line(dbms_metadata.get_ddl('TABLE', rec.table_name));
end loop;
end;

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧