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

OracleでSQLを介してテーブルコメントを取得するにはどうすればよいですか?

    10g以降、DROP TABLEステートメントを発行しても、Oracleはテーブルをすぐに削除しません。代わりに、次のように名前を変更しますBIN$IN1vjtqhTEKcWfn9PshHYg==$0 そしてそれらをごみ箱に入れます。これにより、削除するつもりがなかったテーブルを回復できます。 詳細

    ごみ箱内のテーブルは引き続きテーブルであるため、ALL_TABLESおよび同様のビューに表示されます。したがって、ライブ(ドロップされていない)テーブルのみに関連するコメントのみを表示する場合は、テーブル名でフィルタリングする必要があります:

    select * from all_tab_comments
    where substr(table_name,1,4) != 'BIN$'
    /
    

    あなたが正しい、それは信じられないでしょう。そこで、ドキュメントを確認したところ、Oracle10gがUSER_/ ALL_/DBA_TABLESビューにDROPPEDという列を追加したことがわかりました。

    select tc.* 
    from all_tab_comments tc
         join all_tables t
         on tc.owner = t.owner
         and tc.table_name = t.table_name
    where t.dropped = 'NO'
    /
    

    ドキュメントを確認してください 。明らかに、ALL_TABLESビューに参加する必要があるため、名前をフィルタリングするよりも多くの入力が必要になるため、必要に応じて、元のWHERE句を保持する方が簡単な場合があります。



    1. ファイルシステムにディレクトリを作成するにはどうすればよいですか?

    2. T-SQLを使用してSQLServerでユーザー定義のデータ型エイリアスを作成する方法

    3. MySQLの正規表現のユーザー入力をエスケープする最良の方法は何ですか?

    4. SQL * PLUS for Oracleの良い代替手段はありますか?