【发布时间】:2019-09-11 08:44:25
【问题描述】:
我想计算用户定义模式中所有表的行数。我有与特定模式计数相关的解决方案。但我想得到以下输出
TABLE_NAME SCHEMA_NAME ROW_COUNT
主要关注的是所有用户定义的模式。我不知道如何识别它是用户模式还是系统模式。此外,当我执行以下脚本时
declare
v_count integer;
begin
for r in (select table_name, owner from all_tables where owner not in ('SYS','SYSTEM','OUTLN','DBSNMP','APPQOSSYS','WMSYS','CTXSYS','XDB' ) )
loop
execute immediate 'select count(*) from ' || r.table_name
into v_count;
DBMS_OUTPUT.PUT_LINE(r.table_name ||v_Count);
INSERT INTO STATS_TABLE(TABLE_NAME,SCHEMA_NAME,RECORD_COUNT)
VALUES (r.table_name,r.owner,v_count);
end loop;
end;
但它返回以下错误
错误报告 - ORA-00942:表或视图不存在 ORA-06512:在 第 7 行 00942. 00000 - “表或视图不存在” *原因:
*行动:
提前感谢您提供宝贵的回复。
【问题讨论】:
-
当您到达 12c 时,您可以使用 DBA_USERS 中的 ORACLE_MAINTAINED 列。在此之前,USER_ID 可能会提供线索,假设系统用户是在普通用户之前创建的,因此应该有一个较小的数字(尽管升级可能会影响这一点,所以请仔细检查)。