怎么统计oracle数据库下某个用户的表的数量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么统计oracle数据库下某个用户的表的数量相关的知识,希望对你有一定的参考价值。
create or replace procedure tj_data is-- 当前存储过程用到的变量
v_tableName VARCHAR2(100);
v_sql varchar2(200);
v_count integer;
-- 获取当前数据库中的所有表
CURSOR TABLE_LOOP IS SELECT Table_name FROM User_tables;
BEGIN
-- 打开游标
OPEN TABLE_LOOP;
LOOP
FETCH TABLE_LOOP INTO v_tableName;
EXIT WHEN TABLE_LOOP %NOTFOUND;
v_sql:= \'select count(1) from \'||v_tableName;
execute immediate v_sql into v_count;
dbms_output.put_line(v_tableName||\':\'||v_count);
END LOOP;
CLOSE TABLE_LOOP;
end tj_data;
使用pl/Sql运行该存储过程,在DBMS Output窗口下可看到统计结果。(把Buffer size值适当调大一点) 参考技术A 查看用户表的数据字段名, 是
DBA_TABLES
SQL 如下:
SELECT
COUNT(*)
FROM
DBA_TABLES
WHERE
owner = '用户名' 参考技术B SELECT COUNT(*) FROM all_objects WHERE owner='TEST' AND object_type='TABLE'
这里TEST为用户名
all_objects是一个系统的视图名,存储了系统的表名,过程名等对象
SELECT owner,COUNT(object_type) FROM all_objects WHERE object_type='TABLE' GROUP BY owner
执行一下上面的语句看一下
select * from all_objects看一下,就会很明白了
另外说一个:
all_tab_columns是哪个用户下哪个表的列的描述 参考技术C select count(*) from user_tables;本回答被提问者采纳
mysql查询某个数据库表的数量
今天想查询下数据库有多少个表,粗略评估下项目大小。
在mysql中有个数据库information_schema下的表tables记录了所有数据库中所有的表相关信息
sql语句:
SELECT COUNT( * ) FROM information_schema.tables WHERE TABLE_SCHEMA = ‘dbName‘;
注:dbName为数据库的名字
以上是关于怎么统计oracle数据库下某个用户的表的数量的主要内容,如果未能解决你的问题,请参考以下文章
怎么在oracle数据库中想统计一个用户下所有表的记录的总条数?