文档章节

Oracle查询数据库中某用户下满足某些条件的表的记录数

一贱书生
 一贱书生
发布于 2016/06/17 11:11
字数 265
阅读 10
收藏 0

首先建立一个计算函数
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
create or replace function count_rows(table_name in varchar2,
                              owner in varchar2 default null)
return number
authid current_user
IS
   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

where table_name not in('IPRTT_SUB_POLICY','DC_SR_SUB_POLICY','TTIPR_POLICY','XWZ_POLICY','WZ_POLICY',
 'W_POLICY','IPTTC_COVERAGE_INFO','CYBTTC_COVERAGE','IPC_MO_CYB_TIMEPOINT','CYBTTC_COVERAGE_TEMP',
 'IPC_TEMP_CYB','IPC_TEMP_CYBWZX','CYBTT_SUB_POLICY','CYBCYBC_COVERAGE_REL','INSURANCES','IPCASUAL','IPCCYBCYB_COVERAGE_REL',
 'IPCOUNTERS','IPCYB_R_SUB_POLICY','IPTEST','SPERRORLOG','TEST','ITTPR_MONEYIN_INFO','IPSUB_POL_ID','IPDC_R_SUB_POLICY'
 ,'IPB_B_CALC_MDL','IPS_LOAN_RULE3')
 and  table_name not like'%TMP%'
获取要统计的值

 

然后用UE比较

 

或者 select t.table_name,t.num_rows from user_tables t
查看记录数,但是这种不准确。
还是觉得上面的自己写函数实现好些

declare
v_tName varchar(50);
v_sqlanalyze varchar(500);
v_num number;
v_sql varchar(500);
cursor c1 
is
select table_name from user_tables;
begin
open c1;
loop
fetch c1 into v_tName;
if c1%found then

v_sqlanalyze :='analyze table  '||v_tName||'  estimate statistics';
execute immediate v_sqlanalyze;
v_sql := 'select NUM_ROWS  from user_tables where table_name =upper('''||v_tName||''')';

execute immediate v_sql into  v_num;
dbms_output.put_line('表名: '||v_tName||' 行数: '||v_num);
else
exit;
end if;
end loop;
end;

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
一贱书生
粉丝 19
博文 724
码字总数 600123
作品 0
私信 提问
PostgreSQL 优化器案例之 - order by limit 索引选择问题

标签 PostgreSQL , limit , order by , 优化器 , 选择性 , 相关性 , 数据存储顺序 , 目标数据存储顺序 背景 当我们在执行一个这样的SQL时,假如有这样几个索引(c1,c2) (id),数据库到底该用哪...

德哥
2018/10/05
0
0
Oracle sql优化必知——表的访问

《访问数据的方法》 访问表中的数据有两种:1、直接访问表 2、先访问索引,再回表 1、直接访问表的两种方法: ①、全表扫描 全表扫描是指Oracle在访问目标表的数据时,会从该表所占用的第一个...

一个笨小孩
2017/08/03
0
0
oracle 11g逻辑备份介绍-expdp/impdp

Data Pump(数据泵) 是从oracle10g 引入的全新的,用于快速迁移数据的方式。Data Pump与exp/imp最大的区别是,Data Pump是一个位于服务器端的工具,通过Data Pump导出的转储文件只能位于数据...

突突突酱
01/09
0
0
数据库查询性能优化问题

查询、新增、修改及删除数据库等操作是影响web应用程序性能指标的重大因素。下面一些常见的建议可以提高查询性能问题。 1. 优化JDBC连接 采用数据库连接池机制可以将曾打开的数据库连接保存在...

lindianlide
2014/08/29
0
0
oracle sqlplus 常用命令大全

show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> show error   --显示错误 SQL> set heading off -...

随影求是
2012/03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS5.11配置Let's Encrypt免费证书

安装环境: [root@WQ02 opt]# lsb_release -aLSB Version::core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd6......

m_lm
39分钟前
1
0
看看Canonical分享的2018年的十大Linux Snap

导读 Linux在2018年最令人耳目一新的一个方面是Snaps的普及。 Canonical透露,集装箱化的包装已经取得了巨大的成功。今天,Ubuntu制造商分享了2018年的十大Snap。 随着2018年即将结束,我发现...

问题终结者
51分钟前
3
0
天啦噜!在家和爱豆玩"剪刀石头布",阿里工程师如何办到?

阿里妹导读:如今,90、00后一代成为消费主力,补贴、打折、优惠等“价格战”已很难建立起忠诚度,如何与年轻人建立更深层次的情感共鸣?互动就是一种很好的方式,它能让用户更深度的参与品牌...

阿里云官方博客
今天
1
0
聊聊flink的Table API及SQL Programs

序 本文主要研究一下flink的Table API及SQL Programs 实例 // for batch programs use ExecutionEnvironment instead of StreamExecutionEnvironmentStreamExecutionEnvironment env = Stre......

go4it
今天
3
0
mysqldump应用

备份单个库/表数据或库/表结构 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 备份文件名 1、导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的...

阿dai
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部