ORACLE查询有数据的表

xi_ha 2008-06-12 04:01:50
ORACLE版本是10,现在数据中有900多张数据表,
有一些表中有数据,有一些没有数据,
现在呢我需要查询出所有有数据的那些表。
别说用select 一张张表来看,那会死人的。
...全文
406 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weifengxian2 2008-07-02
  • 打赏
  • 举报
回复

SELECT * FROM USER_TABLES WHERE NUM_ROWS > 0;

如果不先对表进行分析,得不到预期的结果的。
这个字段只有对表执行了分析以后才会出现
analyze table table_name compute statistics;
推荐使用:dbms_stats.gather_*_stats
dbms_stats这个包是ORACLE自带的
dbcxbj 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chensi05 的回复:]
SQL codeSELECT*FROMUSER_TABLESWHERENUM_ROWS>0;
[/Quote]
经我测验这个不行
lixuewen518 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chensi05 的回复:]
SQL codeSELECT * FROM USER_TABLES WHERE NUM_ROWS > 0;
[/Quote]

这个NUM_ROWS好像有些表是不记录数据的吧.
lixuewen518 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chensi05 的回复:]
SQL codeSELECT * FROM USER_TABLES WHERE NUM_ROWS > 0;
[/Quote]

这样好像行啊.
hebo2005 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chensi05 的回复:]
SQL codeSELECT * FROM USER_TABLES WHERE NUM_ROWS > 0;
[/Quote]

呵呵,没仔细看user_tables里的内容,原来里面有num_rows,太简单了
换成all_tables就可以看全部表了
chensi05 2008-06-12
  • 打赏
  • 举报
回复
SELECT * FROM USER_TABLES WHERE NUM_ROWS > 0;
hebo2005 2008-06-12
  • 打赏
  • 举报
回复
google来的
===============
执行下面的角本,生成c:\mytext.sql的文件,运行c:\mytext.sql文件中的内容,可以得到当前用户下的所有表及表中的记录数
Connect UserID/PSW@NETServerName
set feedback off
set heading off
spool c:\mytext.sql
select decode(rownum,1,'','union')||' select'||''''||table_name||''''||',count(*)from '||table_name from user_tables;
spool off
hebo2005 2008-06-12
  • 打赏
  • 举报
回复
我用toad可以直接看到所有表有多少纪录,不知道TOAD是怎么查的,我去研究下
hebo2005 2008-06-12
  • 打赏
  • 举报
回复
可以写个函数去查找
先从all_table里找出所有表名
然后做循环用动态sql去查询所有表的纪录数

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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