【发布时间】:2020-12-04 15:51:08
【问题描述】:
您好,我需要扫描架构并识别冗余的表(删除的候选),所以我在 DBA_Dependencies 中进行了选择,以检查表是否正在任何 DB 对象类型中使用,例如(过程,包体,视图,物化视图......)我能够找到一些表并排除这些表,因为我还需要捕获总计数,当表最后一次加载/使用时是否有自动方法仅选择选定的表(未在依赖项列表中找到)并捕获计数以及使用/加载的时间
难度 - 这么多桌 500+
我使用了以下查询
查询 1
select table_name,
to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from '||owner||'.'||table_name)),'/ROWSET/ROW/C')) as count
from all_tables
where owner = 'SCHEMA_NAME'
查询 2
select owner, table_name, num_rows, sample_size, last_analyzed from all_tables;
查询 1 个结果
过滤表名=CUST_ORDER
OWNER TABLE_NAME COUNT SAMPLE_SIZE LAST_ANALYZED
ABCD CUST_ORDER 1083 1023 01.01.2020
查询 2 结果
过滤表名=CUST_ORDER
OWNER TABLE_NAME NUM_ROWS SAMPLE_SIZE LAST_ANALYZED
ABCD CUST_ORDER 1023 1023 01.01.2020
问题
查询 1 - 与查询 2 相比,结果不匹配,因为应用了相同的表和过滤器 在两个查询中以及为什么结果不匹配?
但是当我随机检查其他过滤器是否匹配时,有人知道原因吗?
经过进一步测试,我遇到了一个错误,这个错误表示权限是什么?
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file **-**.csv in ****_***_***_***** not found
29913. 00000 - "error in executing %s callout"
*Cause: The execution of the specified callout caused an error.
*Action: Examine the error messages take appropriate action.
【问题讨论】:
-
此错误仅适用于特定架构而不是所有架构