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
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)
以下は、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
)
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 >