Oracle中使用SQL查询表结构
SELECT NULL AS table_cat, t.owner AS table_schem, t.table_name AS table_name, t.column_name AS column_name, DECODE (t.data_type, 'CHAR', 1, 'VARCHAR2', 12, 'NUMBER', 3, 'LONG', -1, 'DATE', 91, 'RAW', -3, 'LONG RAW', -4, 'BLOB', 2004, 'CLOB', 2005, 'BFILE', -13, 'FLOAT', 6, 'TIMESTAMP(6)', 93, 'TIMESTAMP(6) WITH TIME ZONE', -101, 'TIMESTAMP(6) WITH LOCAL TIME ZONE', -102, 'INTERVAL YEAR(2) TO MONTH', -103, 'INTERVAL DAY(2) TO SECOND(6)', -104, 'BINARY_FLOAT', 100, 'BINARY_DOUBLE', 101, 1111 ) AS data_type, t.data_type AS type_name, DECODE (t.data_precision, NULL, t.data_length, t.data_precision ) AS column_size, 0 AS buffer_length, t.data_scale AS decimal_digits, 10 AS num_prec_radix, DECODE (t.nullable, 'N', 0, 1) AS nullable, NULL AS remarks, t.data_default AS column_def, 0 AS sql_data_type, 0 AS sql_datetime_sub, t.data_length AS char_octet_length, t.column_id AS ordinal_position, DECODE (t.nullable, 'N', 'NO', 'YES') AS is_nullable FROM all_tab_columns t WHERE t.owner LIKE 'ODS_USER' ESCAPE '/' AND t.table_name LIKE 'ODS_PRPCMAIN' ESCAPE '/' -- AND t.column_name LIKE :3 ESCAPE '/' ORDER BY table_schem, table_name, ordinal_position
如果需要DDL可如下查询:
1.SELECT DBMS_METADATA.get_ddl ('TABLE', 'ODS_PRPCMAIN_COEFF', 'ODS_USER') 2.FROM DUAL