Skip to content

字段列-sys_columns

功能描述

sys_columns系统表用于存储、管理系统库和用户库中的所有表字段信息。

字段说明

序号字段名类型说明
0DB_IDOID_TYPE库ID
1TABLE_IDOID_TYPE表ID
2COL_NOINTEGER字段序号
3COL_NAMEVARCHAR字段名
4TYPE_NAMEVARCHAR类型名
5SCALEINTEGER数据尺寸
6IS_HIDEBOOLEAN是否隐藏
7DELETEDBOOLEAN是否删除
8VARYINGBOOLEAN是否变长(对char binary有效)
9NOT_NULLBOOLEAN是否可为空
10IS_SERIALBOOLEAN是否为序列值
11SERIAL_IDOID_TYPE序列值发生器的ID号
12TIMESTAMP_T CHAR1时间戳类型'i':仅在插入时计值;'u':更改时计值
13COLLATORVARCHAR校验器名
14DEF_VALVARCHAR1024默认值
15DOMAIN_IDOID_TYPEDOMAIN_ID号
16IS_VIRTUALBOOLEAN该字段是否是虚字段
17COMMENTSVARCHAR注释信息
18REPET_RATEDOUBLE重复率
19DISPERSIONDOUBLE离散度
20MAX_VALVARCHAR1024最大值
21MIN_VALVARCHAR1024 最小值
22HISTOGRAMCLOB柱状图
23ANA_FLAGTINYINT分析控制标记
24RESERVED1VARCHAR保留字段
25RESERVED2VARCHAR保留字段
26RESERVED3VARCHAR保留字段

SCALE

numeric、decimal、interval等类型精度和标度计算规则如下:

  • 精度:SHR(scale,16)
  • 标度:MOD(scale,65536)

示例

  • 查询表列信息

    sql
    SQL> CREATE TABLE col_info(id INT,name CHAR,col1 VARCHAR(10),col2 NUMERIC(32,6),col3 INTERVAL YEAR TO MONTH);  
    
    SQL> SELECT st.table_name,sc.col_no,sc.col_name,sc.type_name,scale,(sc.scale/65536)::INT precision,MOD(sc.scale,65536) scaler,"VARYING",not_null FROM sys_columns sc JOIN sys_tables st ON sc.db_id=st.db_id AND sc.table_id=st.table_id WHERE st.table_name='COL_INFO';
    
    TABLE_NAME | COL_NO | COL_NAME | TYPE_NAME | SCALE | PRECISION | SCALER | VARYING | NOT_NULL | 
    ------------------------------------------------------------------------------
    COL_INFO| 0 | ID| INTEGER| -1 | 0 | -1| F | F |
    COL_INFO| 1 | NAME| CHAR| 1 | 0 | 1| F | F |
    COL_INFO| 2 | COL1| CHAR| 10 | 0 | 10| T | F |
    COL_INFO| 3 | COL2| NUMERIC| 2097158 | 32 | 6| F | F |
    COL_INFO| 4 | COL3| INTERVAL YEAR TO MONTH| 524288 | 8 | 0| F | F |
  • 查询表精度和标度

相关系统表

  • sys_databases
  • sys_schemas
  • sys_tables