在oracle這兩個系統非常的重要,特別是做動態sql的時候根據這兩個視圖做查詢,然后去執行相應的操作:如字段長度,非空等約束。但是這兩種視圖有什么區別呢?
通過查看oracle中的元數據就可以很清楚的知道它們兩者的區別了:
reate or replace view sys.user_tab_columns as
select TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_TYPE_MOD, DATA_TYPE_OWNER,
DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, COLUMN_ID,
DEFAULT_LENGTH, DATA_DEFAULT, NUM_DISTINCT, LOW_VALUE, HIGH_VALUE,
DENSITY, NUM_NULLS, NUM_BUCKETS, LAST_ANALYZED, SAMPLE_SIZE,
CHARACTER_SET_NAME, CHAR_COL_DECL_LENGTH,
GLOBAL_STATS, USER_STATS, AVG_COL_LEN, CHAR_LENGTH, CHAR_USED,
V80_FMT_IMAGE, DATA_UPGRADED, HISTOGRAM
from USER_TAB_COLS
where HIDDEN_COLUMN = 'NO'
oracle 在表中建立索引后,會在表里自動新增一個字段,但是這個字段在user_tab_cols里的HIDDEN_COLUMN里是用YES來標識的。