原创

Oracle查询数据库中所有表的记录数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://itmyhome.blog.csdn.net/article/details/86673109

使用如下语句进行查询:

select t.table_name,t.num_rows from user_tables t

查询出来的结果数据可能是不正确的,或者根本就没数
在这里插入图片描述

执行如下脚本可查询出正确的数据

CREATE OR REPLACE FUNCTION count_rows (
	table_name IN varchar2, 
	owner IN varchar2 := NULL
)
RETURN number AUTHID current_user
AS
num_rows number;
	stmt varchar2(2000);
BEGIN
	IF owner IS NULL THEN
		stmt := 'select count(*) from "' || table_name || '"';
	ELSE
		stmt := 'select count(*) from "' || owner || '"."' || table_name || '"';
	END IF;
	EXECUTE IMMEDIATE stmt INTO num_rows;
	RETURN num_rows;
END;

之后,再查询:

select table_name, count_rows(table_name) nrows from user_tables 
order by nrows desc;
0 个人打赏
文章最后发布于: 2019-01-29 21:41:40
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

打赏

麦田

“你的鼓励将是我创作的最大动力”

5C币 10C币 20C币 50C币 100C币 200C币

分享到微信朋友圈

×

扫一扫,手机浏览