ORACLE-用户常用数据字典的查询使用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE-用户常用数据字典的查询使用方法相关的知识,希望对你有一定的参考价值。

一、用户

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

SQL> select username,default_tablespace from user_users;

USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
SCOTT USERS

 

查看当前用户的角色

SQL> select * from user_role_privs;

USERNAME GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE OS_GRANTED
------------------------------ ------------------------------ ------------ ------------ ----------
SCOTT CONNECT NO YES NO
SCOTT DBA NO YES NO
SCOTT RESOURCE NO YES NO

 

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

SQL> select * from user_sys_privs;

USERNAME PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
SCOTT UNLIMITED TABLESPACE NO

SQL> select * from user_tab_privs;

GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --------- ---------

显示当前会话所具有的权限

SQL> select * from session_privs;

 

指定用户所具有的系统权限

SQL> select * from dba_sys_privs where grantee=‘SCOTT‘;

GRANTEE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
SCOTT UNLIMITED TABLESPACE NO

显示特权用户

SQL> select * from v$pwfile_users;

USERNAME SYSDBA SYSOPER SYSASM
------------------------------ ------ ------- ------
SYS TRUE TRUE FALSE

 

显示用户信息(所属表空间)

SQL> select default_tablespace,temporary_tablespace from dba_users where username=‘SCOTT‘;

DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
------------------------------ ------------------------------
USERS TEMP

显示用户的profile

SQL> select profile from dba_users where username=‘SCOTT‘;

PROFILE
------------------------------
DEFAULT

 

二、表

查看当前用户下所有的表

SQL> select * from user_tables;

SQL> select table_name from user_tables;

 

查看名称包含EP字符的表

SQL> select table_name from user_tables where instr(table_name,‘EP‘)>0;

查看名称包含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 table_name,index_name,index_type 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 constraint_name, constraint_type,search_condition, r_constraint_name
from user_constraints where table_name = upper(‘&table_name‘);

 

六、存储过程和函数

查看函数和存储过程的状态

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‘);

以上是关于ORACLE-用户常用数据字典的查询使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Oracle学习笔记—数据字典和常用命令(转载)

动态性能视图

Oracle的SQLPLUS常用命令

Oracle实验三—数据字典和性能视图的使用

oracle常用的数据字典

转://工作中 Oracle 常用数据字典集锦