Oracle查看表结构的几种方法

发布时间:2023-12-29 02:57:37

1,DESCRIBE 命令
使用方法如下:
SQL> describe nchar_tst(nchar_tst为表名)
显示的结果如下:
?名称 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?是否为空? 类型
?----------------------------------------- -------- ----------------------------
?NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NCHAR(6)
?ADDR ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NVARCHAR2(16)
?SAL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NUMBER(9,2)
2,DBMS_METADATA.GET_DDL包
使用方法如下:

  1. SQL>?SELECT?DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST')?FROM?DUAL;??

如果显示的结果并未完整,如下:
? CREATE TABLE "SCOTT"."NCHAR_TST"
? ?( ? ?"NAME" NCHAR(6),
? ? ? ? "ADDR" NVARCHAR2(16

那么修改如下:

  1. SQL>?SET?LONG?9999??
  2. SQL>?SELECT?DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST')?FROM?DUAL;??

则显示如下的结果:

DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST')
------------------------------------------------------------------------------
? CREATE TABLE "SCOTT"."NCHAR_TST"
? ?( ? ?"NAME" NCHAR(6),
? ? ? ? "ADDR" NVARCHAR2(16),
? ? ? ? "SAL" NUMBER(9,2)
? ?) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING
? STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50
? FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"
3,方法:
  通过Oracle中的user_tab_cols, user_col_comments, user_constraints, user_cons_columns表联合查询。
  user_tab_cols用来获取对应用户表的列信息;
  user_col_comments用来获取对应用户表列的注释信息;
  user_constraints用来获取用户表的约束条件;
  user_cons_columns约束中用户可访问列。


示例代码:

    1. select?t.table_name,t.column_name,t.data_type,t.data_length,t.nullable,t.column_id,c.comments,???
    2. ???????(SELECT?CASE?WHEN?t.column_name=m.column_name?THEN?1?ELSE?0?END?FROM?DUAL)?iskey??
    3. ???????FROM?user_tab_cols?t,?user_col_comments?c,?(select?m.column_name?from?user_constraints?s,?user_cons_columns?m???
    4. ?????????????where?lower(m.table_name)='us_cities'?and?m.table_name=s.table_name??
    5. ?????????????and?m.constraint_name=s.constraint_name?and?s.constraint_type='P')?m??
    6. ???????WHERE?lower(t.table_name)='us_cities'???
    7. ?????????????and?c.table_name=t.table_name???
    8. ?????????????and?c.column_name=t.column_name???
    9. ?????????????and?t.hidden_column='NO'???
    10. ?order?by?t.column_id?
文章来源:https://blog.csdn.net/weixin_34111819/article/details/85826947
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。