Je veux que l'opération desc table; affiche les commentaires des colonnes. J'ai vu que certaines personnes y sont parvenues, mais je n'ai pas pu savoir comment. Cela dépend peut-être de la version de SQL Developer, la mienne est 2.1.0.63. La base de données est Oracle 11g.
C'est ce que j'obtiens en faisant desc table;:
Desc table;
Name Nullable Type
------------------- -------- -----
ID NOT NULL NUMBER(38)
ITEM_ID NUMBER(38)
Et je voudrais obtenir quelque chose comme ça:
Desc table;
Name Nullable Type Comment
------------------- -------- ---------- ---------------------------------
ID NOT NULL NUMBER(38) Table's id
ITEM_ID NUMBER(38) Reference to an item
la commande desc est interprétée différemment pour différents outils. Ce qu'il fait, c'est faire une sélection de certaines vues Oracle standard.
Voici une requête sur les vues qui fourniront les données de colonne souhaitées, mais je vous encourage à faire un select * pour voir tout ce qui est disponible.
Vous disposez de 3 types de vues, les vues dba _, tous _ et user_ *. J'utilise user_ * car il est disponible pour chaque schéma/utilisateur, mais il répertorie uniquement les objets appartenant à ce schéma/utilisateur. Les vues dba_ sont généralement réservées aux dba et les vues all_ peuvent ou non être disponibles pour vous en fonction de la confiance que vos dba vous accordent. ^ _ ^
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)
Voici la définition d'Oracle SQL Developer (comme indiqué dans la vue des colonnes du tableau):
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
)
Dans Oracle SQLcl , une nouvelle CLI moderne pour Oracle Database, nous avons DESC. Mais nous avons également construit une nouvelle commande appelée INFO [RMATION].
Il affiche par défaut les commentaires de la colonne.
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 >
Si vous exécutez INFO +, il remplace les commentaires de colonne par des statistiques de colonne.
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 >