The difference between user_tab_columns and user_tab_cols in oracle depends on the oracle metadata create or replace view sys. user_tab_columns asselect TABLE_NAME, COLUMN_NAME, DATA_TYPE, direction, direction, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, direction, COLUMN_ID, DEFAULT_LENGTH, DATA_DEFAULT, direction, LOW_VALUE, HIGH_VALUE, DENSITY, distance, NUM_BUCKETS, costs, SAMPLE_SIZE, CHARACTER_SET_NAME, CHAR_COL_DECL_LEN Metric, GLOBAL_STATS, USER_STATS, AVG_COL_LEN, CHAR_LENGTH, CHAR_USED, metric, DATA_UPGRADED, HISTOGRAM from USER_TAB_COLS where HIDDEN_COLUMN = 'no' www.2cto.com after oracle creates an index in the table, A field is automatically added to the table, but this field is identified by YES in HIDDEN_COLUMN in user_tab_cols. Therefore, we should try to use user_tab_columns instead of user_tab_cols when using it. Because user_tab_cols has some hidden fields.