sql >> データベース >  >> RDS >> Oracle

DESCRIBEコマンドを使用せずにOracleでテーブルを記述するにはどうすればよいですか?

    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を付与してもらう必要があります。 特権。



    1. MySQL更新クエリの値をインクリメントする

    2. mysqlbinlogを使用してMySQLバイナリログファイル(BinLog)を読み取る方法

    3. Oracleにはフィルタリングされたインデックスの概念がありますか?

    4. SpringBootでPostgres接続が閉じられましたエラー