Oracle查询问题: 给出相应的表名 如:SELECT t.table_name FROM All_All_Tables t ;
现在,我需要把这些查出来的表中有数据的和没有数据的表名查询出来,分别作为2列显示有数据的表和无数据的表的SQL语句。存储过程也行。给个思路也行!!谢谢在线等。。关键现在给...
现在,我需要把这些查出来的表中有数据的和没有数据的表名查询出来,分别作为2列显示有数据的表和无数据的表的SQL语句。存储过程也行。给个思路也行!!谢谢在线等。。
关键现在给的是一些表名,通过查询表里面的有没有数据,没有数据的显示出来,有数据的显示出来,就是做个分开。返回的是有数据的表名和无数据的表名作为结果集 展开
关键现在给的是一些表名,通过查询表里面的有没有数据,没有数据的显示出来,有数据的显示出来,就是做个分开。返回的是有数据的表名和无数据的表名作为结果集 展开
4个回答
展开全部
SQL1:
select decode(t.num_rows, 0, t.table_name, null) 无数据的表,
decode(t.num_rows, 0, null, t.table_name) 有数据的表
from user_tables t
where t.table_name in (SELECT t1.table_name FROM All_All_Tables t1);
SQL2
select decode(t.num_rows, 0, t.table_name, null) 无数据的表,
decode(t.num_rows, 0, null, t.table_name) 有数据的表
from user_tables t
WHERE t.table_name LIKE 'AC%';
select decode(t.num_rows, 0, t.table_name, null) 无数据的表,
decode(t.num_rows, 0, null, t.table_name) 有数据的表
from user_tables t
where t.table_name in (SELECT t1.table_name FROM All_All_Tables t1);
SQL2
select decode(t.num_rows, 0, t.table_name, null) 无数据的表,
decode(t.num_rows, 0, null, t.table_name) 有数据的表
from user_tables t
WHERE t.table_name LIKE 'AC%';
展开全部
declare @tablename varchar(300)
declare curtablelist cursor for select name from sysobjects where xtype='u'
open curtablelist
fetch next from curtablelist into @tablename
while @@fetch_status=0
begin
exec('if not exists(select * from '+@tablename+' ) print '''+@tablename+'''')
fetch next from curtablelist into @tablename
end
close curtablelist 这个用游标 显示无数据的表
declare curtablelist cursor for select name from sysobjects where xtype='u'
open curtablelist
fetch next from curtablelist into @tablename
while @@fetch_status=0
begin
exec('if not exists(select * from '+@tablename+' ) print '''+@tablename+'''')
fetch next from curtablelist into @tablename
end
close curtablelist 这个用游标 显示无数据的表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
收集所有表的统计信息,然后查看all_all_tables的 row_num列 为0的就是空表不为0的就不是空表,null值就是没有收集统计信息。
追问
能详细点吗?比喻说登录一个用户:
SELECT t.table_name FROM user_tables t WHERE t.table_name LIKE 'AC%';
查询了所有当前用户下的所有表,然后在怎么判断?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select count(all_all_tables.*) ,t.table_name from all_all_Tables t; 我也新学 看看行不。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询