Oralce查詢表結構

-- 查詢表結構的所有屬性

SELECT  t.* 
  FROM User_Tab_Cols t, User_Col_Comments t1
WHERE t.TABLE_NAME = t1.TABLE_NAME
    AND t.COLUMN_NAME = t1.COLUMN_NAME 
    AND t.TABLE_NAME='TABLE01' -- 查詢的表名
ORDER BY t.COLUMN_ID ASC;

 

-- 查詢表的列字段(NUMBER類型)的長度和精度

SELECT  t.TABLE_NAME, t.COLUMN_NAME, t.DATA_PRECISION, t.DATA_SCALE
  FROM User_Tab_Cols t, User_Col_Comments t1
WHERE t.TABLE_NAME = t1.TABLE_NAME
  AND t.COLUMN_NAME = t1.COLUMN_NAME 
  AND  (t.DATA_TYPE = 'NUMBER')
    AND t.TABLE_NAME='TABLE01' -- 查詢的表名
ORDER BY t.COLUMN_ID ASC;

 

-- 查詢表的列字段:NUMBER類型 & 精度爲0或精度爲空的列字段

SELECT  t.* 
  FROM User_Tab_Cols t, User_Col_Comments t1
WHERE t.table_name = t1.table_name
    AND t.column_name = t1.column_name 
    AND  (t.DATA_SCALE is NULL OR t.DATA_SCALE=0)
    AND  (t.DATA_TYPE = 'NUMBER')
    AND t.TABLE_NAME = 'TABLE01'  -- 查詢的表名
ORDER BY t.COLUMN_ID ASC;

 

-- 查詢Oracle表的字符串字段的長度和單位

SELECT TABLE_NAME, 
       COLUMN_NAME, 
       DATA_TYPE,
       DATA_LENGTH, -- Length of the column (in bytes)
       CHAR_COL_DECL_LENGTH, -- Declaration length of character type column
       CHAR_LENGTH, -- Displays the length of the column in characters of CHAR/VARCHAR2/NCHAR/NVARCHAR 
       CHAR_USED  -- B|C. The column uses BYTE|CHAR length semantics. NULL indicates the datatype is not any of the following: CHAR/VARCHAR2/NCHAR/NVARCHAR.
FROM USER_TAB_COLS
-- FROM ALL_TAB_COLUMNS 也可以查詢ALL_TAB_COLUMNS表
WHERE TABLE_NAME='TEST_BYTE_CHAR_01';

關於列字段的詳細信息,可以參考:

USER_TAB_COLUMNS:https://ss64.com/orad/USER_TAB_COLUMNS.html

ALL_TAB_COLUMNS:https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm

例如:

CREATE TABLE "TEST_BYTE_CHAR_01" (
"ID" NUMBER NOT NULL ,
"COL_STR1_BYTE" VARCHAR2(4 BYTE) NULL , 
"COL_STR2_CHAR" VARCHAR2(4 CHAR) NULL , 
"COL_STR3_NULL" VARCHAR2(4) NULL        -- 不指定單位B|C,數據庫默認爲BYTE
);

TABLE_NAME         COLUMN_NAME      DATA_TYPE    DATA_LENGTH    CHAR_COL_DECL_LENGTH  CHAR_LENGTH   CHAR_USED
TEST_BYTE_CHAR_01     ID                               NUMBER           22             NULL             0              NULL
TEST_BYTE_CHAR_01     COL_STR1_BYTE     VARCHAR2       4               4                    4              B
TEST_BYTE_CHAR_01     COL_STR2_CHAR    VARCHAR2       16             16                  4              C
TEST_BYTE_CHAR_01     COL_STR3_NULL     VARCHAR2        4              4                    4               B          
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章