oracle 查出所有空表,Oracle查看某个用户上的所有空表
Oracle查看某个用户下的所有空表
今天在群里有人问如何查看某个用户下的所有空表,有人回答是写PL/SQL
SQL> DECLARE
v_table tabs.table_name%TYPE;
v_sql VARCHAR2(888);
v_q NUMBER;
CURSOR c1 IS
SELECT table_name tn FROM tabs;
TYPE c IS REF CURSOR;
c2 c;
BEGIN
DBMS_OUTPUT.PUT_LINE('以下为空数据表的表名:');
FOR r1 IN c1 LOOP
v_table :=r1.tn;
v_sql :='SELECT count(*) q FROM '||v_table||' where rownum = 1';
OPEN c2 FOR v_sql;
LOOP
FETCH c2 INTO v_q;
EXIT WHEN c2%NOTFOUND;
IF v_q=0 THEN
DBMS_OUTPUT.PUT_LINE(v_table);
END IF;
END LOOP;
CLOSE c2;
END LOOP;
EXCEPTION
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error occurred');
END;
/
PL/SQL 过程已成功完成。
SQL> set serveroutput on
SQL> /
以下为空数据表的表名:
T_FILE_INFO_RAW
T_DOSSIER_INFO_RAW
T_FONDS_INFO_RAW
其实不用那么麻烦,而且表如果很多的话,执行会很慢
先收集下用户的信息
SQL> exec dbms_stats.gather_schema_stats(user);
PL/SQL 过程已成功完成。
再查看user_tables数据字典
SQL> exec dbms_stats.gather_schema_stats(user);
PL/SQL 过程已成功完成。
-------------------- ----------
T_FILE_INFO_RAW 0
T_DOSSIER_INFO_RAW 0
T_FONDS_INFO_RAW 0
验证结果是否准确
SQL> select count(*) from T_FILE_INFO_RAW;
COUNT(*)
0
SQL> select count(*) from T_DOSSIER_INFO_RAW;
COUNT(*)
0
SQL> select count(*) from T_FONDS_INFO_RAW;
COUNT(*)
0
向T_FONDS_INFO_RAW表插入几条数据,在查看下
SQL> insert into T_FONDS_INFO_RAW (FILE_SUM) values(1111);
已创建 1 行。
SQL> insert into T_FONDS_INFO_RAW select * from T_FONDS_INFO_RAW;
已创建 1 行。
SQL> /
已创建2行。
SQL> /
已创建4行。
SQL> commit;
提交完成。
在收集下用户的信息
SQL> exec dbms_stats.gather_schema_stats(user);
PL/SQL 过程已成功完成。
SQL> select table_name,num_rows from user_tables;
TABLE_NAME NUM_ROWS
------------------------------ ----------
T_FILE_INFO_RAW 0
T_DOSSIER_INFO_RAW 0
T_FONDS_INFO_RAW 8
SQL> select count(*) from T_FONDS_INFO_RAW;
COUNT(*)
8
这种方法要比写PL/SQL方便得多
oracle 查出所有空表,Oracle查看某个用户上的所有空表相关推荐
- spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
1.spool 命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创 ...
- Oracle数据库如何查看当前用户角色权限及默认表空间
http://database.51cto.com/art/201108/280474.htm 在Oracle数据库操作中,有时候我们需要查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间 ...
- spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...
1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...
- oracle查出连续5行,Oracle期末考试复习题2
复习题 一.填空题: 1. Oracle EnterpriseManager是一个基于 B/S的框架系统. 2.Oracle数据库的存储结构分为物理结构和逻辑结构. 3.在游标或者游标变量打开后还没有 ...
- uniapp实现表单提交带图片上传 在做表单提交的时候,我们可能面临有图片上传,放在原生的html就好解决,form标签加上
enctype="multipart/form-data" uniapp微信小程序 1.原图 页面部分 <form :model="data" @subm ...
- Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间
Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; ...
- oracle 统计信息字典表,Oracle数据字典表查询
/*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/selectusername,user_id,createdfromall_users ...
- oracle常见表,ORACLE常见视图和表整理
v$database 数据库信息 v$datafile 数据文件信息 v$controlfile 控制文件信息 v$logfile 重做日志信息 v$instance 数据库实例信息 v$log 日志 ...
- oracle怎么查询表空间信息,查询Oracle表空间信息
查询Oracle表空间信息,查看当前用户每个表占用空间的大小:查询出系统表空间的大小,并按大小进行降序排列(需要SYSDBA的权限): 1.查看当前用户每个表占用空间的大小: Select Segme ...
最新文章
- linux内核功能关闭透明大页 功能,redhat linux 7.4关闭透明大页
- 训练日志 2019.3.28
- geoserver矢量瓦片发服务前端展示偏移问题解决
- iOS开发 网络编程 Socket编程
- turbo c语言编程环境,turbo c(编程软件)
- 使用标尺工具获取某点的坐标
- 什么是GC,GC是什么意思?为什么要有GC?
- 短视频搬运如何上热门?搬运视频哪个平台容易挣钱?
- 目标检测--RFBNet训练自己制作数据集出现loss=nan问题的解决方法
- win10+黑苹果 单硬盘 双系统 超简单安装 一看就会
- 七种操作系统的发展史及特点
- C语言原码,反码和补码转换详解
- 三层交换机配置MSTP协议详解【华为eNSP实验】
- Java+面板颜色分块_地图区块颜色分块 | JShare
- 如何做代码评审(code review)
- 微信直播是怎么实现的?
- BerkeleyDB库简介
- 外文文献翻译工具,怎么样又快又精准?
- 关于雄迈提出撬动安防市场格局观点的感触
- storm和spring的结合
热门文章
- 全方面的了解超宽带信号高速采集记录回放系统
- matlab磁铁模拟,用matlab-模拟环形磁铁的磁场分布
- mysql @符号_quot;Incorrect string value quot; mysql 乱码 my插入emoji Yii2
- centos7子系统 win10_Win10下安装CentOS 7双系统详解
- python制作查询工具发给别人使用_用Python做一个简单的翻译工具
- 索引法则--LIKE以%开头会导致索引失效进而转向全表扫描(使用覆盖索引解决)...
- 怎样让公式编号不从1开始
- Python 给字符串进行加密,生成唯一固定长度字符串
- 关于插件管理器Alcatraz的一些问题
- 『雕虫小技』用 Zend Guard 加密 html 页面