perintah desc ditafsirkan secara berbeda untuk alat yang berbeda. Apa yang dilakukannya adalah memilih beberapa tampilan standar Oracle.
Berikut adalah kueri pada tampilan yang akan memberikan data kolom yang diinginkan, tetapi saya mendorong Anda untuk memilih * untuk melihat semua yang tersedia.
Anda memiliki 3 jenis tampilan, dba_, all_ , dan tampilan user_*. Saya menggunakan user_* karena itu tersedia untuk setiap skema/pengguna, tetapi hanya mencantumkan objek yang dimiliki oleh skema/pengguna itu. Tampilan dba_ biasanya hanya untuk dba, dan tampilan all_ mungkin tersedia atau tidak untuk Anda tergantung pada seberapa besar kepercayaan dba Anda kepada Anda. ^_^
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)