table_name中的select count(*)返回错误

Jab*_*ook 1 sql oracle

我正在尝试查询我的oracle数据库以确定每个表中的条目数.我将以下查询的结果假脱机到sql文件:

select 'select count(*) '||table_name||';' from dba_tables;
Run Code Online (Sandbox Code Playgroud)

这创建了格式的sql文件

select count(*) from Table_Name1;
select count(*) from Table_Name2;
etc
Run Code Online (Sandbox Code Playgroud)

然后我假装运行这个sql文件的输出,但它只返回了一些表的计数,对于其他表,它只是说:

'此表或视图不存在'

如果我只是从数据库中自动填充表名列表,那该怎么办?

这个练习的最终目的是让一个文件包含每个表中所有字段的数量,然后使用这个数据库对程序进行更改并再次运行相同的操作到一个新文件中并比较2以便我可以看到当我对程序进行更改时哪些表更改.

a_h*_*ame 6

你忘了完全限定名字:

select 'select count(*) '||owner||'.'||table_name||';' 
from dba_tables;
Run Code Online (Sandbox Code Playgroud)

如果你有非标准名称的表,你也应该在那里抛出双引号:

select 'select count(*) "'||owner||'"."'||table_name||'";' 
from dba_tables;
Run Code Online (Sandbox Code Playgroud)