怎么统计oracle数据库下某个用户的表的数量
4个回答
推荐于2016-05-03
展开全部
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值适当调大一点)
-- 当前存储过程用到的变量
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值适当调大一点)
展开全部
查看用户表的数据字段名, 是
DBA_TABLES
SQL 如下:
SELECT
COUNT(*)
FROM
DBA_TABLES
WHERE
owner = '用户名'
DBA_TABLES
SQL 如下:
SELECT
COUNT(*)
FROM
DBA_TABLES
WHERE
owner = '用户名'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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是哪个用户下哪个表的列的描述
这里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是哪个用户下哪个表的列的描述
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select count(*) from user_tables;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询