ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3985220 表と表領域とデータファイルについて
質問者:nao-k よろしくお願いします。
表と表領域とデータファイルの関係を一発で導く方法を
教えてください。
今のところ、下記2つに分けているので、1つのSQLとしたいです。
データベースは、Oracle9i(9.2.0.8.0)です。
どうぞよろしくお願いします。

1.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SQL> select table_name, tablespace_name from all_all_tables
2 where table_name = 'SAMPLE'
3 ;
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

2.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SQL> select tablespace_name, file_name from DBA_DATA_FILES
2 where tablespace_name = 'USERS'
3 ;
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
困り度:
  • すぐに回答を!
質問投稿日時:
08/04/29 18:02
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.1 ジョインすればよいでしょう。

SELECT a.owner,
a.table_name,
a.tablespace_name,
b.file_name
FROM dba_tables a,
dba_data_files b
WHERE a.tablespace_name = b.tablespace_name
AND a.table_name = 'EMP'
;

OWNER TABLE_NAME TABLESPACE_NAME FILE_NAME
----- ---------- --------------- -----------------------------------------------
SCOTT EMP USERS C:\ORACLE\APP\ORADATA\TEST\DATA\USERS01.DBF

注意点
(1)dba_xxxはDBA権限を持つユーザーかViewに対して個別に
 権限を与えたユーザしか参照できません。
(2)表領域は複数のデータファイルで構成することも可能なので、
 SELECTの結果が複数件返ってくる場合もあります。
(3)別のユーザが同名テーブルを所有している可能性もあるので
 ownerまで指定、表示させたほうが良いでしょう。
回答者:3rd_001
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
08/04/30 10:08
この回答へのお礼3rd_001さん、ご回答ありがとうございます。
ジョイン(結合)を調べてみました。
方法がわかり非常に助かりました。
注意書きまでありがとうございます。