类型:Oracle;问题:oracle 查询表详细信息;结果:oracle查询表信息(索引,外键,列等)

oracle查询表信息(索引,外键,列等)

oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助:

1、查询出所有的用户表
select * from user_tables 可以查询出所有的用户表

select owner,table_name from all_tables; 查询所有表,包括其他用户表

通过表名过滤需要将字母作如下处理

select * from user_tables where table_name = upper('表名')

因为无论你建立表的时候表名名字是大写还是小写的,create语句执行通过之后,对应的user_tables表中的table_name字段都会自动变为大写字母,所以必须通过内置函数upper将字符串转化为大写字母进行查询,否则,即使建表语句执行通过之后,通过上面的查询语句仍然查询不到对应的记录。
2、查询出用户所有表的索引
select * from user_indexes
3、查询用户表的索引(非聚集索引):
select * from user_indexes where uniqueness='NONUNIQUE'
4、查询用户表的主键(聚集索引):
select * from user_indexes where uniqueness='UNIQUE'
5、查询表的索引
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and

t.table_name='NODE'
6、查询表的主键
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and

au.constraint_type = 'P' AND cu.table_name = 'NODE'
7、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name and

cu.table_name='NODE'
8、查找表的外键
select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
9、查询表的所有列及其属性
方法一:

select * from user_tab_columns where table_name=upper('表名');

方法二:

select cname,coltype,width from col where tname=upper('表名');;
 
10.查询一个用户中存在的过程和函数
select object_name,created,status from user_objects 
where lower(object_type) in ('procedure','function');
 
11.查询其它角色表的权限
select * from role_tab_privs ;
 
 

查看索引个数和类别

select * from user_indexes where table_name='表名' ;

查看索引被索引的字段


SQL>select * from user_ind_columns where index_name=upper('&index_name');

PS:

查看某表的约束条件


SQL>select constraint_name, constraint_type,search_condition, r_constraint_name 
from user_constraints where table_name = upper('&table_name'); 

SQL>select c.constraint_name,c.constraint_type,cc.column_name 
from user_constraints c,user_cons_columns cc 
where c.owner = upper('&table_owner') and c.table_name = upper('&table_name') 
and c.owner = cc.owner and c.constraint_name = cc.constraint_name 
order by cc.position;

查看视图的名称


SQL>select view_name from user_views;

 

oracle lobsegment 过大 怎么解决 [复制链接]

   

注册会员

中级会员

 

精华贴数
0
专家积分
3
技术积分
2515
社区积分
160
注册时间
2006-8-1
论坛徽章:
10
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152011新春纪念徽章
日期:2011-05-06 16:49:002011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010新春纪念徽章
日期:2010-03-01 11:07:22生肖徽章2007版:鸡
日期:2009-09-28 12:51:472009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53劳斯莱斯
日期:2013-12-16 10:42:54
跳转到指定楼层
1#
 
 发表于 2010-8-24 17:08:55 |只看该作者 |倒序浏览
DB: 10.2.0.4
OS: SOLARIS 

有部分logsegment 段过大了,我想查下这些lobsegment是哪个表的 应该怎么查,
查到后有什么方法可以尽量减小其大小。

SQL> select  segment_name,segment_type,tablespace_name,bytes/1024/1024,blocks,extents  from user_segments
  2  where segment_type='LOBSEGMENT'
  3   order by bytes desc;

SEGMENT_NAME                                                                      SEGMENT_TYPE       TABLESPACE_NAME                BYTES/1024/1024     BLOCKS    EXTENTS
--------------------------------------------------------------------------------- ------------------ ------------------------------ --------------- ---------- ----------
SYS_LOB0000010054C00005$$                                                         LOBSEGMENT         INNOCOM                                  57670    7381760       1090
SYS_LOB0000009926C00005$$                                                         LOBSEGMENT         INNOCOM                                  15651    2003328        431
SYS_LOB0000010071C00002$$                                                         LOBSEGMENT         INNOCOM                                   2048     262144        215
 
 
 
我的技能:ORACLE SQLSERVER MYSQL GOLDENGATE LINUX SOLARIS AIX SHELL and a good oral english
 

使用道具 举报

   

注册会员

初级会员

 

精华贴数
0
专家积分
0
技术积分
23
社区积分
1
注册时间
2007-2-9
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:06:12
2#
 
 发表于 2010-8-24 18:24:34 |只看该作者
SELECT A.TABLE_NAME,
       A.COLUMN_NAME,
       B.SEGMENT_NAME,
       B.SEGMENT_TYPE,
       B.TABLESPACE_NAME,
       B.BYTES / 1024 / 1024,
       B.BLOCKS,
       B.EXTENTS
  FROM USER_LOBS A, USER_SEGMENTS B
WHERE A.SEGMENT_NAME = B.SEGMENT_NAME
ORDER BY B.BYTES DESC;
 
 
 
 

使用道具 举报

   

注册会员

初级会员

 

精华贴数
0
专家积分
0
技术积分
23
社区积分
1
注册时间
2007-2-9
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:06:12
3#
 
 发表于 2010-8-24 18:28:41 |只看该作者
可以对LOB字段进行压缩存储
ALTER TABLE <表名> MODIFY LOB(<列名>) (COMPRESS);
 
 
 
 

使用道具 举报

   

注册会员

十万个为什么

 

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:59ITPUB元老
日期:2013-01-10 14:38:472013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09问答徽章
日期:2014-04-22 08:57:25
4#
 
 发表于 2011-8-15 21:52:30 |只看该作者
遇到这个问题

up一下
 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

注册会员

十万个为什么

 

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:59ITPUB元老
日期:2013-01-10 14:38:472013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09问答徽章
日期:2014-04-22 08:57:25
5#
 
 发表于 2011-8-23 21:33:53 |只看该作者
表有lob字段,有300000rows
the most largest row's lob column is 12K size
found The biggest lob segment will be 5G,but it show 50G
如何处理?

1.
col segment_name for a35
select * from (
select owner,segment_name,tablespace_name,segment_type,bytes/1024/1024 from dba_segments order by 5 desc
) where TABLESPACE_NAME='QQ' AND rownum<20;


OWNER SEGMENT_NAME SEGMENT_TYPE BYTES/1024/1024
--------- -------------------------- ------------------ ---------------
QQQ SYS_LOB0000138594C00023$$ LOBSEGMENT 50105
PP SYS_LOB0000130969C00023$$ LOBSEGMENT 46917
QQQ SYS_LOB0000138594C00078$$ LOBSEGMENT 5128
PP SYS_LOB0000130969C00078$$ LOBSEGMENT 4864
......

SELECT DBMS_LOB.GETLENGTH(A00126) LENGTH FROM PP.CM45001 where rowid='AAAf+ZAAIAAApQaAAM' and rownum<10;
LENGTH
----------
11869
 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

注册会员

十万个为什么

 

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:59ITPUB元老
日期:2013-01-10 14:38:472013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09问答徽章
日期:2014-04-22 08:57:25
6#
 
 发表于 2011-8-23 21:38:46 |只看该作者
悲剧没人回复!

up
 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

注册会员

咖啡猫

 

精华贴数
3
专家积分
169
技术积分
6253
社区积分
15799
注册时间
2006-5-14
论坛徽章:
169
雪铁龙
日期:2014-01-01 22:28:04马上有钱
日期:2014-05-16 09:39:482014年世界杯参赛球队: 俄罗斯
日期:2014-06-06 15:11:20生肖徽章:马
日期:2014-06-19 17:10:502014年世界杯参赛球队: 阿尔及利亚
日期:2014-06-26 09:17:47青年奥林匹克运动会-击剑
日期:2014-09-24 15:44:44金牛座
日期:2015-09-23 14:59:59狮子座
日期:2015-10-31 00:11:54祖国65周年纪念徽章
日期:2014-10-10 21:18:34白羊座
日期:2015-08-11 14:08:56金牛座
日期:2015-08-14 20:01:00马上有钱
日期:2014-11-04 13:08:17
7#
 
 发表于 2011-8-23 21:51:12 |只看该作者
--alter table <your_table> move lob (<lob_column>) store as (tablespace <tablespace>);

select 'alter table ' || t.owner || '.' || t.table_name || ' move lob (' ||
       column_name || ') store as ' || t.table_name ||
       '_lobsegment (tablespace USERS );'
  from dba_lobs l, dba_tables t
where l.owner = t.owner
   and l.table_name = t.table_name
   and l.SEGMENT_NAME in
       (select segment_name
          from dba_segments
         where segment_type like 'LOBSEGMENT'
           and tablespace_name = 'USERS')
order by t.owner, t.table_name;
 
 
 
猫言猫语:
             人生无非是笑笑人家,再被人家笑笑而已.
             男人是用来靠的,所以要可靠;女人是用来爱的,所以要可爱.
             发怒一分钟便失去六十秒的幸福.
             人品就象内裤,表面看不出来,如果你没有还显摆,就挺讨厌.
             ......
 

使用道具 举报

   

注册会员

十万个为什么

 

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
生肖徽章2007版:马
日期:2009-11-06 23:12:33授权会员
日期:2013-01-10 14:38:59ITPUB元老
日期:2013-01-10 14:38:472013年新春福章
日期:2013-02-25 14:51:24马自达
日期:2013-08-07 10:54:45红旗
日期:2013-08-09 13:48:48劳斯莱斯
日期:2013-09-12 15:56:37优秀写手
日期:2013-12-18 09:29:13Jeep
日期:2014-01-14 10:53:432014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09问答徽章
日期:2014-04-22 08:57:25
8#
 
 发表于 2011-8-23 22:01:26 |只看该作者
谢谢!
顺便问一下,以前你做这个操作后效果如何?
 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

版主

Frank

 

精华贴数
5
专家积分
84
技术积分
15595
社区积分
4594
注册时间
2006-1-4
认证徽章
论坛徽章:
89
马上加薪
日期:2014-02-19 11:55:14奥运会纪念徽章:网球
日期:2012-07-05 15:32:53奥运会纪念徽章:垒球
日期:2012-06-30 09:56:29紫蛋头
日期:2012-03-24 14:38:252012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:09茶鸡蛋
日期:2011-12-29 18:20:50ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20
9#
 
 发表于 2011-12-6 02:20:29 |只看该作者
同遇到这个问题,如何解决?
 
 
 
http://space.itpub.net/715354/
 

使用道具 举报

   

 

精华贴数
5
专家积分
318
技术积分
43555
社区积分
12600
注册时间
2005-3-4
论坛徽章:
161
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39ITPUB社区12周年站庆徽章
日期:2013-10-08 14:56:08马上有房
日期:2014-04-22 17:21:252014年世界杯参赛球队: 阿尔及利亚
日期:2014-06-02 17:43:212014年世界杯参赛球队: 韩国
日期:2014-06-18 15:18:392014年世界杯参赛球队: 厄瓜多尔
日期:2014-07-01 10:50:13青年奥林匹克运动会-网球
日期:2014-09-18 16:57:18祖国65周年纪念徽章
日期:2014-09-30 11:35:30itpub13周年纪念徽章
日期:2014-09-30 11:55:16itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50
10#
 
 发表于 2011-12-6 08:55:17 |只看该作者
查询dba_lobs。

SEGMENT_NAME                                                                      SEGMENT_TYPE       TABLESPACE_NAME                BYTES/1024/1024     BLOCKS    EXTENTS
--------------------------------------------------------------------------------- ------------------ ------------------------------ --------------- ---------- ----------
SYS_LOB0000010054C00005$$                                                         LOBSEGMENT         INNOCOM                                  57670    7381760       1090

object_id=10054
column_id=5

好像是这样。
 
分类: Oracle
 
 
posted @ 2016-03-18 09:27  longphui  Views(497)  Comments(0Edit  收藏  举报