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. java 开发面试题小整理(一)

    本篇文档将持续更新,有基础滴,也有深层次的,谢谢! 1.看下面的程序是否有问题,如果有问题,请指出并说明理由. * byte b1 = 3; * byte b2 = 4; * byte b3 = b1 ...

  2. File类之在指定目录中查找文件

    package IoDemo; import java.io.File; /** * @Title:FileDemo2 * @Description:在指定的目录中查找文件 * @author Cra ...

  3. JavaWeb -- Servlet Filter 过滤器

    1. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过Filter技术,开发人员可以实现用户在 ...

  4. Java中finally关键字的使用(转)

    与其他语言的模型相比,finally 关键字是对 Java 异常处理模型的最佳补充.finally 结构使代码总会执行,而不管有无异常发生.使用 finally 可以维护对象的内部状态,并可以清理非内 ...

  5. C++两种字符串传参构造函数

    第一种: #include"iostream" #include"string" using namespace std; class Motor{ prote ...

  6. Java 框架

    Netty: Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty ...

  7. 关于C++中的pow小记(转)

    昨天在敲一个数位DP的问题,但是用到了这个坑D的问题,找了半天错,还以为又是什么奇怪的算法,结果发现思路一致,然后自己各种YY修改,最后不得不和正确答案比对,但是最后发现标准答案和自己的想法几乎一模一 ...

  8. 201621123014《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 结合题集题目7-1回答 1.1 自己以前编写的代码中经常出现 ...

  9. 一些神奇的(优化)板子——来自Loi_black的博客

    deque<int>q; void spfa(int s) { ;i<=n;i++) d[i]=1e9; d[s]=; q.push_back(s); used[s]=; while ...

  10. Linux命令学习(20):traceroute命令

    版权声明 更新:2017-06-13博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2 ...