oracle下导出表结构方法
其中FACT_ELECTRIC是我的表名 此部分替换你自己的表名即可
SELECT
CASE
WHEN ROWNUM = 1 THEN
'FACT_ELECTRIC'
ELSE
''
END AS "表名",
table_info.*
FROM
(
SELECT
USER_TAB_COLS.COLUMN_NAME AS 列名,
USER_TAB_COLS.DATA_TYPE AS 数据类型,
USER_TAB_COLS.DATA_LENGTH AS 长度,
USER_TAB_COLS.NULLABLE AS 是否为空,
CASE
WHEN (
SELECT
col.column_name
FROM
user_constraints con,
user_cons_columns col
WHERE
con.constraint_name = col.constraint_name
AND con.constraint_type = 'P'
AND col.table_name = 'FACT_ELECTRIC'
AND col.column_name = USER_TAB_COLS.COLUMN_NAME
) = USER_TAB_COLS.COLUMN_NAME THEN
'Y'
ELSE
'N'
END AS 是否主键,
CASE
WHEN (
SELECT
COUNT (*)
FROM
user_constraints con,
user_cons_columns col,
(
SELECT
t2.table_name,
t2.column_name,
t1.r_constraint_name
FROM
user_constraints t1,
user_cons_columns t2
WHERE
t1.r_constraint_name = t2.constraint_name
AND t1.table_name = 'FACT_ELECTRIC'
) r
WHERE
con.constraint_name = col.constraint_name
AND con.r_constraint_name = r.r_constraint_name
AND con.table_name = 'FACT_ELECTRIC'
AND col.column_name = USER_TAB_COLS.COLUMN_NAME
) > 0 THEN
'Y'
ELSE
'N'
END AS 是否外键,
user_col_comments.comments AS 备注
FROM
USER_TAB_COLS
INNER JOIN user_col_comments ON user_col_comments.TABLE_NAME = USER_TAB_COLS.TABLE_NAME
AND user_col_comments.COLUMN_NAME = USER_TAB_COLS.COLUMN_NAME
AND USER_TAB_COLS.TABLE_NAME = 'FACT_ELECTRIC'
ORDER BY
USER_TAB_COLS.COLUMN_ID
) table_info;
运行效果(我用的是navicat for oracle工具,支持将查询结果导出为excel文件或html文件等)