如何用oracle存储过程查出每一张表各自的记录数?

1要用存储过程2查出这个用户的所有数据库表的所有记录数得到的结果如下数据库表名记录总数xxx100yyy200类似这样怎么写给了不少分呢... 1 要用存储过程
2 查出这个用户的所有数据库表的所有记录数 得到的结果如下
数据库表名 记录总数
xxx 100
yyy 200

类似这样 怎么写 给了不少分呢
展开
 我来答
华夏日长兴
推荐于2018-04-11 · TA获得超过9593个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3755万
展开全部
有两个办法:
1、select a.table_name, sum(a.num_rows) from user_tables a group by a.table_name;这种方式需要oracle对表做了统计分析后才能计算出总数,而且统计分析后新增或删除的记录,统计不出来
2、写个过程,但是这种方式的执行效率恐怕高不了,我可以给你写个方法
declare p_rows number;p_sql varchar(4000);
begin
for r in (select a.TABLE_NAME from user_tables a) loop
p_sql:='select count(1) from '||r.table_name;
execute immediate p_sql into p_rows;
dbms_output.put_line(r.table_name||','||p_rows);
end loop;
end;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式