Oracle 列信息查询详解(dba_tab_columns、dba_tab_cols)

文章目录

1 概述

1. 作用:描述 tableview'列的定义信息'
   (1) 数据类型、精度、是否为空 等等   	
2. dba_tab_columns 和 dba_tab_cols 区别
   (1) 两者都查询 列 的定义信息 -- 相同点
   (2) dba_tab_cols 中包含 Oracle 的 '隐藏列'(hidden column)
       范围 >= dba_tab_columns  -- 不同点
3. 说明
   (1) 咱常用的是 dba_tab_columns  

 
 

扩展:Oracle 12c 官方文档 - DBA_TAB_COLUMNS

2 示例

-- 权限由大到小排列如下
select * from dba_tab_columns; -- 需 dba 权限
select * from all_tab_columns;
select * from user_tab_columns;
-- 同理
select * from dba_tab_cols; -- 需 dba 权限
select * from all_tab_cols;
select * from user_tab_cols;

 
 

示例:

create table column_test(
  sno         number(3),
  sname       varchar2(30),
  sex         varchar2(2),
  message     clob,
  create_date date
);
select *
  from all_tab_columns t
 where t.owner = 'SCOTT'
   and t.table_name = 'COLUMN_TEST'
 order by t.column_id -- 按定义时的顺序排列
;

 
 

查询结果:
在这里插入图片描述

3 dba_tab_columns 和 dba_tab_cols 区别

-- hidden_column  Oracle 的 '隐藏列'
dba_tab_columns 相当于 select * from dba_tab_cols where hidden_column = 'NO';
查看 dba_tab_columns 定义就晓得了('Ctrl + 鼠标左键'
 
 

dba_tab_columns 的定义信息:
在这里插入图片描述

hidden_column 示例:

create index idx_column_test_sname on column_test(substr(sname, 6));
理解:Oracle 在创建 '函数索引' 的时候,实际上是在表上添加了一个字段,用来保留该函数的计算结果,
     并基于此字段创建 '函数索引'
     在底层 '数据字典' 中,会将这个字段标记为 'hindden'

 
 

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值