web-dev-qa-db-ja.com

desc操作で列のコメントを表示する方法

desc table;操作で列のコメントを表示したい。一部の人々がこれを達成したのを見ましたが、私は方法を見つけることができませんでした。多分それはSQL Developerのバージョンに依存します、私のものは2.1.0.63です。データベースはOracle 11gです。

desc table;を実行すると、これが得られます。

Desc table;
    Name                Nullable Type
    ------------------- -------- -----
    ID                  NOT NULL NUMBER(38)
    ITEM_ID                      NUMBER(38)

そして、私はこのようなものを手に入れたいです:

Desc table;
    Name                Nullable Type        Comment
    ------------------- -------- ----------  ---------------------------------
    ID                  NOT NULL NUMBER(38)  Table's id
    ITEM_ID                      NUMBER(38)  Reference to an item
21
Guito

descコマンドの解釈は、ツールによって異なります。これは、いくつかの標準的なOracleビューを選択して実行します。

以下は、目的の列データを提供するビューに対するクエリですが、select *を実行して、利用可能なすべてのデータを確認することをお勧めします。

ビューには、dba _、all _、およびuser_ *ビューの3つのタイプがあります。 user_ *を使用しているのは、スキーマ/ユーザーごとに使用できるためですが、そのスキーマ/ユーザーが所有するオブジェクトのみがリストされます。 dba_ビューは通常dba専用であり、all_ビューは、dbaがどれだけ信頼しているかによって、利用できる場合とできない場合があります。 ^ _ ^

select tc.column_name
,      tc.nullable
,      tc.data_type || case when tc.data_type = 'NUMBER' and tc.data_precision is not null then '(' || tc.data_precision || ',' || tc.data_scale || ')'
                            when tc.data_type like '%CHAR%' then '(' || tc.data_length || ')'
                            else null
                       end type
,      cc.comments
from   user_col_comments cc
join   user_tab_columns  tc on  cc.column_name = tc.column_name
                            and cc.table_name  = tc.table_name
where  cc.table_name = upper(:tablename)
25
winkbrace

以下は、Oracle SQL Developerからの定義です(表の列ビューに示されています)。

SELECT "COLUMN_NAME", "DATA_TYPE", "NULLABLE", "DATA_DEFAULT", "COLUMN_ID", "COMMENTS" FROM(
select c.column_name,  case when data_type = 'CHAR'     then      data_type||'('||c.char_length||decode(char_used,'B',' BYTE','C',' CHAR',null)||')'    
                            when data_type = 'VARCHAR'  then      data_type||'('||c.char_length||decode(char_used,'B',' BYTE','C',' CHAR',null)||')'    
                            when data_type = 'VARCHAR2' then      data_type||'('||c.char_length||decode(char_used,'B',' BYTE','C',' CHAR',null)||')'    
                            when data_type = 'NCHAR'    then      data_type||'('||c.char_length||decode(char_used,'B',' BYTE','C',' CHAR',null)||')'    
                            when data_type = 'NUMBER' then      
                                    case when c.data_precision is null and c.data_scale is null then          'NUMBER' 
                                    when c.data_precision is null and c.data_scale is not null then          'NUMBER(38,'||c.data_scale||')' 
                                    else           data_type||'('||c.data_precision||','||c.data_SCALE||')'      end    
                            when data_type = 'NVARCHAR' then      data_type||'('||c.char_length||decode(char_used,'B',' BYTE','C',' CHAR',null)||')'    
                            when data_type = 'NVARCHAR2' then     data_type||'('||c.char_length||decode(char_used,'B',' BYTE','C',' CHAR',null)||')'    
                            else      data_type    end data_type,
  decode(nullable,'Y','Yes','No') nullable,  
c.DATA_DEFAULT,column_id,   com.comments         
  from sys.Dba_tab_Columns c, 
       sys.Dba_col_comments com
  where c.owner      = :OBJECT_OWNER  
  and  c.table_name =  :OBJECT_NAME   
  and c.table_name = com.table_name
  and c.owner = com.owner
  and c.column_name = com.column_name                 
  order by column_id
)
5
Pavel Gatnar

Oracle SQLcl 、Oracle Databaseの新しい最新のCLIに、DESCがあります。しかし、INFO [RMATION]という新しいコマンドも作成しました。

デフォルトでは、列のコメントが表示されます。

I am HR on orcl > info locations
TABLE: LOCATIONS
         LAST ANALYZED:2017-03-02 17:00:31.0
         ROWS         :23
         SAMPLE SIZE  :23
         INMEMORY     :DISABLED
         COMMENTS     :Locations table that contains specific address of a specific office,
                       warehouse, and/or production site of a company. Does not store addresses /
                       locations of customers. Contains 23 rows; references with the
                       departments and countries tables.

Columns
NAME             DATA TYPE           NULL  DEFAULT    COMMENTS
*LOCATION_ID     NUMBER(4,0)         No               Primary key of locations table
 STREET_ADDRESS  VARCHAR2(40 BYTE)   Yes              Street address of an office, warehouse, or
                                                      production site of a company.Contains building
                                                      number and street name
 POSTAL_CODE     VARCHAR2(12 BYTE)   Yes              Postal code of the location of an office,
                                                      warehouse, or production siteof a company.
 CITY            VARCHAR2(30 BYTE)   No               A not null column that shows city where an office,
                                                      warehouse, orproduction site of a company is
                                                      located.
 STATE_PROVINCE  VARCHAR2(25 BYTE)   Yes              State or Province where an office, warehouse, or
                                                      production site of acompany is located.
 COUNTRY_ID      CHAR(2 BYTE)        Yes              Country where an office, warehouse, or production
                                                      site of a company islocated. Foreign key to
                                                      country_id column of the countries table.

Indexes
INDEX_NAME                 UNIQUENESS   STATUS   FUNCIDX_STATUS   COLUMNS
HR.LOC_ID_PK               UNIQUE       VALID                     LOCATION_ID
HR.LOC_CITY_IX             NONUNIQUE    VALID                     CITY
HR.LOC_COUNTRY_IX          NONUNIQUE    VALID                     COUNTRY_ID
HR.LOC_STATE_PROVINCE_IX   NONUNIQUE    VALID                     STATE_PROVINCE


References
TABLE_NAME    CONSTRAINT_NAME   DELETE_RULE   STATUS    DEFERRABLE       VALIDATED   GENERATED
DEPARTMENTS   DEPT_LOC_FK       NO ACTION     ENABLED   NOT DEFERRABLE   VALIDATED   USER NAME

I am HR on orcl >

INFO +を実行すると、列のコメントが列の統計に置き換えられます。

I am HR on orcl > info+ locations
TABLE: LOCATIONS
         LAST ANALYZED:2017-03-02 17:00:31.0
         ROWS         :23
         SAMPLE SIZE  :23
         INMEMORY     :DISABLED
         COMMENTS     :Locations table that contains specific address of a specific office,
                       warehouse, and/or production site of a company. Does not store addresses /
                       locations of customers. Contains 23 rows; references with the
                       departments and countries tables.

Columns
NAME             DATA TYPE           NULL  DEFAULT    LOW_VALUE               HIGH_VALUE              NUM_DISTINCT   HISTOGRAM
*LOCATION_ID     NUMBER(4,0)         No                   1000                    3200                    23             NONE
 STREET_ADDRESS  VARCHAR2(40 BYTE)   Yes                  12-98 Victoria Street   Schwanthalerstr. 7031   23             NONE
 POSTAL_CODE     VARCHAR2(12 BYTE)   Yes                  00989                   YSW 9T2                 22             NONE
 CITY            VARCHAR2(30 BYTE)   No                   Beijing                 Whitehorse              23             NONE
 STATE_PROVINCE  VARCHAR2(25 BYTE)   Yes                  BE                      Yukon                   17             NONE
 COUNTRY_ID      CHAR(2 BYTE)        Yes                                                                  14             FREQUENCY

Indexes
INDEX_NAME                 UNIQUENESS   STATUS   FUNCIDX_STATUS   COLUMNS
HR.LOC_ID_PK               UNIQUE       VALID                     LOCATION_ID
HR.LOC_CITY_IX             NONUNIQUE    VALID                     CITY
HR.LOC_COUNTRY_IX          NONUNIQUE    VALID                     COUNTRY_ID
HR.LOC_STATE_PROVINCE_IX   NONUNIQUE    VALID                     STATE_PROVINCE


References
TABLE_NAME    CONSTRAINT_NAME   DELETE_RULE   STATUS    DEFERRABLE       VALIDATED   GENERATED
DEPARTMENTS   DEPT_LOC_FK       NO ACTION     ENABLED   NOT DEFERRABLE   VALIDATED   USER NAME

I am HR on orcl >
1
thatjeffsmith