当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle用户常用数据字典的查询

Oracle
常见的一些Oracle初学者的问题
ORACLE认证系统概述
数据库考试简介:Oracle认证
Oracle认证基础知识介绍
ADO连接Oracle Access示例及记录集处理源码
SQL Server和MySQL的安全性分析
用Oracle和SQL Server数据库组合利弊分析
Oracle 11g分区功能新革命
Flashback Query 恢复误删除的数据
基于Oracle高性能动态SQL程序开发
怎样在Oracle 9i中正确的转换时区
Oracle 10g导出的数据库能否导入Oracle 9i?
增加Distinct后查询效率反而提高
Oracle限制返回结果集的大小
Java语言数据库操作的基本流程
美国甲骨文(ORACLE)公司入驻渝中区大都会商厦
RHEL AS4上安装oracle 10R2 的方法
DB中如何查询Table占用空间的大小
编写高质量高性能的MySQL语法
Oracle数据库自动备份的具体实现步骤

Oracle用户常用数据字典的查询


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 385 ::
收藏到网摘: n/a

下面按类别列出一些Oracle用户常用数据字典的查询使用方法。

  一、用户

  查看当前用户的缺省表空间


  SQL>SELECT username,default_tablespace FROM user_users;

  查看当前用户的角色


  SQL>SELECT * FROM user_role_privs;

  查看当前用户的系统权限和表级权限


  SQL>SELECT * FROM user_sys_privs;
  SQL>SELECT * FROM user_tab_privs;

  二、表

  查看用户下所有的表


  SQL>SELECT* FROM user_tables;

  查看名称包含log字符的表


  SQL>SELECT object_name,object_id FROM user_objects WHERE INSTR(object_name,'LOG')>0;

  查看某表的创建时间


  SQL>SELECT object_name,created FROM user_objects WHERE object_name=UPPER('&table_name');

  查看某表的大小


  SQL>SELECT SUM(bytes)/(1024*1024) AS size(M)
  FROM user_segments WHERE segment_name=UPPER('&table_name');

 查看放在ORACLE的内存区里的表


  SQL>SELECT table_name,cache FROM user_tables WHERE INSTR(cache,'Y')>0;

  三、索引

  查看索引个数和类别


  SQL>SELECT index_name,index_type,table_name FROM user_indexes ORDER BY table_name;

  查看索引被索引的字段


  SQL>SELECT * FROM user_ind_columns WHERE index_name=UPPER('&index_name');

  查看索引的大小


  SQL>SELECT SUM(bytes)/(1024*1024)AS size(M)
  FROM user_segments WHERE segment_name=UPPER('&index_name');

  四、序列号

  查看序列号,last_number是当前值


  SQL>SELECT * FROM user_sequences;

  五、视图

  查看视图的名称


  SQL>SELECT view_name FROM user_views;

  查看创建视图的select语句


  SQL>SELECT view_name,text_length FROM user_views;
  SQL>SET long 2000;

 //说明:可以根据视图的text_length值设定set long 的大小


  SQL>SELECT text FROM user_views WHERE view_name=UPPER('&view_name');

  六、同义词

  查看同义词的名称


  SQL>SELECT * FROM user_synonyms;

  七、约束条件

  查看某表的约束条件


  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 6 ORDER BY cc.position;

  八、存储函数和过程

  查看函数和过程的状态


  SQL>SELECT object_name,status FROM user_objects WHERE object_type='FUNCTION';
  SQL>SELECT object_name,status FROM user_objects WHERE object_type='PROCEDURE';

  查看函数和过程的源代码


  SQL>SELECT text from all_source WHERE owner=user AND name=UPPER('&plsql_name');

  九、触发器

  查看触发器


  SET long 50000;
  SET heading off;
  SET pagesize 2000;
  SELECT
  'create or replace trigger ' ||
  trigger_name || '' || chr(10)||
  DECODE( SUBSTR( trigger_type, 1, 1 ),
  'A', 'AFTER', 'B', 'BEFORE', 'I', 'INSTEAD OF' ) ||
  chr(10) ||
  triggering_event || chr(10) ||
  'ON ' || table_owner || '.' ||
  table_name || '' || chr(10) ||
  DECODE( instr( trigger_type, 'EACH ROW' ), 0, null,
  'FOR EACH ROW' ) || chr(10) ,
  trigger_body
  FROM user_triggers;