Oracle通过系统表获取基本库表信息

因开发需要监控整个数据库,所以需要获取数据库的基本信息,包括数据库信息,表信息,列信息等。

介绍下使用到的系统表

  1. all_users
    所有的数据库信息
    select * from all_users;
    这里写图片描述
    官网地址
  2. all_tables
    select * from all_tables;
    这里写图片描述
    其中我需要的有table_name,num_rows,num_rows * avg_row_len 表size,owner所属数据库,last_analyzed 最后修改时间
    官网地址

  3. all_objects
    select * from all_objects where owner = ‘ZYT’;
    这里写图片描述
    owner 拥有者/数据库
    object_name 表名或其他名称
    object_id 表id
    object_type 类型 这里我们只使用table
    created 创建时间
    last_ddl_time 最后一次修改时间
    官网地址

  4. all_tab_columns
    select * from all_tab_columns where owner = ‘ZYT’;
    这里写图片描述
    column_name 列名
    data_type 列类型
    nullable 是否允许为空
    column_id 列id
    官网地址
  5. all_col_comments
    select * from all_col_comments where owner = ‘ZYT’;
    这里写图片描述
    comments 列备注
    官网地址
  6. all_tab_comments
    select * from all_tab_comments where owner = ‘ZYT’;
    这里写图片描述
    comments 表备注
    官网地址
    如果想了解这些表其他列的含义,请查看官网

查询all_ 开头的表均不需要专门权限,也不需要DBA权限!*

知道了上面的系统表是不是就知道自己需要的数据从哪里获取了,具体的sql语句就不提供了,大家自己调研下就知道了。

问题1:为什么不使用user_*系列的表?
因为我要获取的是当前用户有权限的数据库表,而不只是当前用户自己的表数据。
问题2:为什么不适用dba_*系列的表?
因为不是所有用户都有dba权限,会容易出事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值