今天接到一个任务需要统计数据库表中的行长,以前也没怎么弄过Oracle,只知道Oracle会把一些数据结构的信息储存 到系统表中,所以就开始从系统表中寻找吧。
首先从ALL_OBJECTS下手,既然跟字段有关系,那么就先找找名称带有COLUMN的对象吧。
看里面的对象,感觉USER_TAB_COLUMNS这个试图有点象,看了看,过着就是我要找的那张表,不过里面没有owner信息,不要紧,关联一下就OK了
这样就可以轻易的统计出表的行长了。
本人对Oracle了解还不多,不知道有没有什么更简单的方法。
首先从ALL_OBJECTS下手,既然跟字段有关系,那么就先找找名称带有COLUMN的对象吧。
select
*
from
all_objects
where
Object_name
like
'
%COLUMN%
'
AND
OBJECT_TYPE
=
'
VIEW
'
;
select
a.TABLE_NAME,
sum
(DATA_LENGTH)
AS
ROWLENGTH
from
USER_TAB_COLUMNS a,
all_objects b where b.owner = ' YYGL ' and b.Object_type = ' TABLE ' and b. object_name = a.TABLE_NAME
GROUP BY A.TABLE_NAME order by a.TABLE_NAME;
all_objects b where b.owner = ' YYGL ' and b.Object_type = ' TABLE ' and b. object_name = a.TABLE_NAME
GROUP BY A.TABLE_NAME order by a.TABLE_NAME;
这样就可以轻易的统计出表的行长了。
本人对Oracle了解还不多,不知道有没有什么更简单的方法。