私が実行しているクエリの 1 つが実際のテーブルからのものではなく、VIEW からのものであることがわかりました。
その VIEW で SQL クエリを確認したいと思います。しようとするdescribe
と、オブジェクトが存在しないというエラーが表示されます。ビューから SELECT すると、いくつかのデータが得られます。
ビューの基礎となる SQL を確認するには、データ ディクショナリにクエリを実行する必要があります。試す
select view_name, text from user_views where view_name = 'MY_VIEW';
ユーザーがビューを所有していない場合は、試してくださいall_views
。
ビューを作成するために使用された実際の SQL を確認したい場合dbms_metadata.get_ddl
は、CLOB を返すfunction を使用できます。
select dbms_metadata.get_ddl ( 'VIEW'
, 'MY_VIEW' -- view name
)
from dual
必要に応じて、さらにいくつかのオプションがあります。
いつものように説明したい場合。これが機能しない場合は、スキーマが間違っているか、オブジェクトが存在しません。
DESC MY_VIEW
間違ったスキーマにいる場合は、次を使用できます。
select dbms_metadata.get_ddl ( 'VIEW'
, 'MY_VIEW', -- view name
, 'MY_SCHEMA'
)
from dual
また
DESC MY_SCHEMA.MY_VIEW
または、SQLDeveloperの左側の接続ペインのビューをクリックします。ビューが開いたら、[SQL]タブをクリックして、その下にあるSQLを表示します。ビューが使用されているユーザー/スキーマを見つけるには
select owner
from all_objects
where object_name='VIEW_NAME' and object_type='VIEW';