1 概述
1.1. 作用:描述 table、view 中 '列的定义信息'
(1) 数据类型、精度、是否为空 等等
1.2. dba_tab_columns 和 dba_tab_cols 区别
(1) 两者都查询 列 的定义信息 -- 相同点
(2) dba_tab_cols 中包含 Oracle 的 '隐藏列'(hidden column)
范围 >= dba_tab_columns -- 不同点
1.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'
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。