質問 |
||
| 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さん、ご回答ありがとうございます。 ジョイン(結合)を調べてみました。 方法がわかり非常に助かりました。 注意書きまでありがとうございます。 |