怎么统计oracle数据库下某个用户的表的数量

 我来答
匿名用户
推荐于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值适当调大一点)
wangzhiqing999
2011-08-08 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3294万
展开全部
查看用户表的数据字段名, 是
DBA_TABLES

SQL 如下:
SELECT
COUNT(*)
FROM
DBA_TABLES
WHERE
owner = '用户名'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f19a583
2011-08-08 · TA获得超过1362个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:124万
展开全部
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是哪个用户下哪个表的列的描述
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nod22
2011-08-08 · 超过27用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:53.6万
展开全部
select count(*) from user_tables;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式