これは、DBA_TABLESデータディクショナリビューへのアクセス権を持っていることを前提としています。 これらの権限を持っていないが必要な場合は、DBAにそのテーブルに対する権限を明示的に付与してもらうか、DBAにSELECT ANY DICTIONARY権限やSELECT_CATALOG_ROLEロールを付与してもらうように要求することができます(いずれも任意のデータ辞書テーブルを照会することができます)。 もちろん、SYSやSYSTEMのような特定のスキーマを除外することもできます。これらのスキーマには、おそらく気にしないような大量のOracleテーブルがあります。
これは、
DBA_TABLES
データディクショナリビューへのアクセス権を持っていることを前提としています。 これらの権限を持っていないが必要な場合は、DBAにそのテーブルに対する権限を明示的に付与してもらうか、DBAにSELECT ANY DICTIONARY
権限やSELECT_CATALOG_ROLE
ロールを付与してもらうように要求することができます(いずれも任意のデータ辞書テーブルを照会することができます)。 もちろん、SYS
やSYSTEM
のような特定のスキーマを除外することもできます。これらのスキーマには、おそらく気にしないような大量のOracleテーブルがあります。また、
DBA_TABLES
にアクセスできない場合は、ALL_TABLES
ビューで、自分のアカウントがアクセスできるすべてのテーブルを見ることができます。ただし、これはデータベースで利用可能なテーブルのサブセットである可能性があります(
ALL_TABLES
は、ユーザーがアクセスを許可されているすべてのテーブルの情報を表示します)。自分がアクセスできるテーブルではなく、自分が所有しているテーブルにのみ関心がある場合は、
USER_TABLES
を使用することができます。USER_TABLES
は自分が所有しているテーブルの情報のみを持っているので、
OWNER`列はありません。Oracleには、
TAB
、DICT
、TABS
、CAT
など、数多くのレガシーデータディクショナリビューがあり、これらを使用することができます。 一般的には、スクリプトをOracle 6にバックポートする必要がない限り、これらのレガシービューを使用することはお勧めしません。 オラクルは長い間これらのビューを変更していないので、新しいタイプのオブジェクトには問題があることが多いのです。 例えば、[DBA|ALL|USER]_TABLES
ビューではユーザーのごみ箱に入っているテーブルの情報が表示されますが、CAT
ビューではそれらの情報がフィルタリングされて表示されます。 また、CAT
はTABLE_TYPE
が "TABLE" であるマテリアライズド・ビュー・ログの情報を表示しますが、これは実際に必要なものではないと思われます。 DICT` はテーブルとシノニムを組み合わせたもので、誰がそのオブジェクトを所有しているのかを教えてくれません。user_tables "と "dba_tables "への問い合わせがうまくいかない。
これはうまくいきました。
現在のユーザーが所有しているテーブルを一覧表示するuser_tablesから選択してみてください。