USER_TAB_COLUMNS
を探しています -クエリが実行されるスキーマ内のすべての列とその説明-またはALL_TAB_COLUMNS
-ユーザーが表示する権限を持つすべてのテーブルを除いて同じです。
一般的なクエリは次のとおりです。
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
column_id
表の列の「順序」です。
大文字と小文字を区別するテーブルを追加していない限り、「MY_TABLE」が大文字になっていることを確認する必要があります(悪い考えです)。その場合は、= "MyTable"
のようなものを使用する必要があります。 。
具体的にはdesc
これは、優れたOracleリソースであるss64から盗んだ次のものと同等です。
select column_name as "Name"
, nullable as "Null?"
, concat(concat(concat(data_type,'('),data_length),')') as "Type"
from user_tab_columns
where table_name = 'MY_TABLE';
この種のビューはすべて、select * from dictionary
で見つけることができます。 、これはデータディクショナリのトップレベルであるか、ドキュメントを参照してください。
DBA_TAB_COLUMNS
もあります 、これはALL_TAB_COLUMNS
と同じです 、ただし、データベース内のすべてのテーブルに対して。これは、それとテーブルの両方を表示する権限があることを前提としています。このテーブルにアクセスできない場合は、DBAにSELECT ANY DICTIONARY
を付与してもらう必要があります。 特権。