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');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」