DM查询模式下所有的表和记录

本文介绍了一种简便的方法来批量统计数据库中指定模式下各表的记录数量,并通过一个示例展示了如何使用PL/SQL代码块实现这一过程。

工作中,我们时常统计某个模式下有哪些表,表中有多少条记录,如果每张表去统计,工作量会非常的大。介绍一种简单方便的统计方法:

--drop table table_count;
create table table_count (owner varchar(100),table_name varchar(100),cnt int);
declare
v_owner VARCHAR2(100);
v_tabname VARCHAR2(100);
stmt  VARCHAR2(200);
num_rows number;
begin
    for rec in (select owner,table_name from dba_tables where owner='DMHR' order by 1, 2)
    loop
        select rec.owner,rec.table_name into v_owner,v_tabname from dual; 
        stmt := 'select count(*) from "' || v_owner || '"."' || v_tabname || '"';
        EXECUTE IMMEDIATE stmt INTO num_rows;  
        EXECUTE IMMEDIATE 'insert into table_count values('''||v_owner||''','''||v_tabname||''','''||to_number(num_rows)||''');';
    end loop;
end;
--truncate table table_count;
select count(*) from table_count;
select * from table_count order by cnt desc;
select count(*) from dba_tables;

在迁移过程中,核对源端和目的端数据的时候极为方便。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值