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
电梯直达

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
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
3#

 
 发表于 2010-8-24 18:28:41 |只看该作者
可以对LOB字段进行压缩存储
ALTER TABLE <表名> MODIFY LOB(<列名>) (COMPRESS);
 
 
 
 

使用道具 举报

   

注册会员

十万个为什么

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
4#

 
 发表于 2011-8-15 21:52:30 |只看该作者
遇到这个问题

up一下

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

使用道具 举报

   

注册会员

十万个为什么

精华贴数
2
专家积分
201
技术积分
8462
社区积分
274
注册时间
2008-4-5
论坛徽章:
58
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
6#

 
 发表于 2011-8-23 21:38:46 |只看该作者
悲剧没人回复!

up

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

使用道具 举报

   

注册会员

咖啡猫

精华贴数
3
专家积分
169
技术积分
6253
社区积分
15799
注册时间
2006-5-14
论坛徽章:
169
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
8#

 
 发表于 2011-8-23 22:01:26 |只看该作者
谢谢!
顺便问一下,以前你做这个操作后效果如何?
 
 
 
提供ORACLE技术支持(系统优化,故障处理,安装升级,数据恢复,容灾dg,rac故障处理,NBU,commvalt等)
提供甘肃,宁夏,青海等西北地区ORACLE数据库技术支持。
 

使用道具 举报

   

版主

Frank

精华贴数
5
专家积分
84
技术积分
15595
社区积分
4594
注册时间
2006-1-4
认证徽章
论坛徽章:
89
9#

 
 发表于 2011-12-6 02:20:29 |只看该作者
同遇到这个问题,如何解决?
 
 
 
http://space.itpub.net/715354/
 

使用道具 举报

   
精华贴数
5
专家积分
318
技术积分
43555
社区积分
12600
注册时间
2005-3-4
论坛徽章:
161
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
 
 

类型:Oracle;问题:oracle 查询表详细信息;结果:oracle查询表信息(索引,外键,列等)的更多相关文章

  1. 关于 Oracle外键列上是否需要索引问题?

    外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可能会造成严重性能问题.   无论是Oracle的官方文档,还是在Tom的书中都说明了两种情况下可以忽略外键上的索引.其 ...

  2. sqlserver 查询表中的主键、外键列及外键表,外表中的主键列

    1.获取主键信息 EXEC sp_pkeys @table_name='{0}' 2.获取外键 方法二 SELECT Field=(SELECT name FROM syscolumns WHERE ...

  3. ORACLE中关于外键缺少索引的探讨和总结

    在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...

  4. (转)ORACLE中关于外键缺少索引的探讨和总结

    在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...

  5. Oracle外键不加索引会引起死锁问题

    转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...

  6. oracle查询某张表的外键,并用 truncate 命令有外键的表中的数据

    注:本文来源于<oracle查询某张表的外键(最终解决办法)> 一:几个查询表外键的脚本 select b.table_name, b.column_name from user_cons ...

  7. oracle 查看主外键约束

    select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints ...

  8. 两种获取MySql数据库中所有表的主键和外键约束信息的Sql语句

    最近在写Rafy底层的一些东西,在数据库方面把MySql数据库集成到里面去,里面有一个需求,需要获取非系统数据库,也就是我们自己建立的数据库中所有表的主键和外键元数据列表. 第一种方法:是网上的方法, ...

  9. SQLServer:查询所有外键关联表信息

     --从左到右分别是: 外键约束名,子表名,外键列名,父表名 --use demodtcms--外键信息select fk.name fkname , ftable.name ftablename, ...

随机推荐

  1. boot小知识

    lg 大, md 中等, sm 小, xs 极小. 可以单独用,也可以混合用,不同的屏幕用不同的比例. push ,pull 推拉.这个不实用. row里面可以嵌套实用row. 挤不下的时候,就会自动 ...

  2. java:file文件类

    public class FileDemo { public static File file; public static void main(String args[]) { String s = ...

  3. 用系统工具sxstrace检查缺少的VC运行时组件

    在管理员运行的命令提示符中输入sxstrace获得如下帮助: C:\>sxstrace WinSxs Tracing Utility. Usage: SxsTrace [Options] Opt ...

  4. Javasript 内置函数

    var str = 'AAAA';var aTest= new Array(); //['ff'[,'er']] \ new Array(10); \ new Array('ff','fee');va ...

  5. Mybatis_总结_05_用_Java API

    一.前言 使用 MyBatis 的主要 Java 接口就是 SqlSession.你可以通过这个接口来执行命令,获取映射器和管理事务. 二.主要类 (1)SqlSession 是由 SqlSessio ...

  6. L123

    My heart, the bird of the wilderness, has found its sky in your eyes. 我的心是旷野的鸟,在你的双眼中找到了天空.His main ...

  7. poj2010

    大学招n(n为奇数)个牛 招第i个牛需要ai块钱 第i个牛高考si分 输入招的牛数n 总的牛数c 总的钱数f 以及ai si 问用这些钱招的n个牛高考分数的中位数最大是多少 如果钱不够输出-1 这题结 ...

  8. Java How to Iterate Map

    常用iterate 方法 Map<Integer, String> m = new HashMap<Integer, String>(); for(Map.Entry<I ...

  9. C++对C语言的拓展(1)—— 引用

    1.变量名 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号): 通过变量来申请并命名内存空间: 通过变量的名字可以使用内存空间. 2.引用的概念 变量名,本身是一段内存的引用,即别名(ali ...

  10. JSONP解决跨域方案

    一.jsonp原理 本质并不是ajax,只是执行了跨域js,所以该方式只支持get方式 html中,所有带src属性的标签都可以跨域script img iframe 所以,可以通过script加载其 ...