「このデータベースにどんなテーブルがあるか調べたい」「特定のキーワードを含むテーブルを検索したい」「テーブルのカラム構成やサイズを一覧で把握したい」——Oracleを使っていれば必ず直面する場面です。
Oracleのテーブル情報はデータディクショナリビューに格納されており、USER_TABLES・ALL_TABLES・DBA_TABLES の3つを使い分けることであらゆるケースに対応できます。さらにカラム構造・行数・テーブルサイズ・コメント(論理名)・制約・インデックスまで、関連ビューを組み合わせれば未知のデータベースを完全に把握できます。
この記事では、テーブル一覧の取得から詳細情報の確認まで、実務で使えるSQLをすべて解説します。
・USER_TABLES / ALL_TABLES / DBA_TABLES の使い分け
・テーブル名のLIKE検索・スキーマ指定・件数集計
・カラム構造(データ型・NOT NULL・デフォルト値)の一覧確認
・テーブルの行数・サイズ・表領域の確認方法
・テーブル・カラムのコメント(論理名)を取得するSQL
・制約・インデックス・シノニムも含めたオブジェクト全体の把握
・テーブルが見つからないときのトラブルシューティング
- 3つのビューの使い分け
- USER_TABLES:自分のテーブル一覧を確認する
- ALL_TABLES:アクセス可能な全テーブルを確認する
- DBA_TABLES:データベース全体のテーブルを確認する(DBA用)
- テーブルのカラム構造(列定義)を確認する
- テーブルのコメント(論理名・説明)を確認する
- テーブルの行数・サイズを確認する
- テーブルの制約を確認する
- テーブルのインデックスを確認する
- ALL_OBJECTS:テーブル以外のオブジェクトも含めて一覧確認
- テーブルの作成日・最終DDL変更日を確認する
- 未知のデータベースを調査する手順(実践シナリオ)
- テーブルが見つからないときのトラブルシューティング
- 実務でよく使う便利クエリ一覧
- よくある質問
- まとめ
- あわせて読みたい
3つのビューの使い分け
Oracleのテーブル一覧を確認するビューは3種類あります。どれを使うかは、確認対象とログインユーザーの権限によって決まります。
| ビュー名 | 確認できる範囲 | 必要な権限 | 使いどころ |
|---|---|---|---|
USER_TABLES |
自分のスキーマが所有するテーブルのみ | 不要 | 開発者が自分のテーブルを確認する場面で最も頻繁に使う |
ALL_TABLES |
自分がアクセス権を持つすべてのテーブル(他スキーマ含む) | 不要 | 他スキーマのテーブルにもアクセスしている場面 |
DBA_TABLES |
データベース内の全テーブル(システム含む) | DBA権限 または SELECT_CATALOG_ROLE |
DBA・インフラ担当が全体を把握する場面 |
USER_TABLES を試す。他スキーマのテーブルも必要なら ALL_TABLES へ。DB全体を見たいがDBA権限がない場合は ALL_TABLES + owner 条件で絞り込む。DB全体をシステムテーブルも含めて確認したい場合は DBA_TABLES。USER_TABLES:自分のテーブル一覧を確認する
最もシンプルな確認方法です。現在のログインユーザーが所有するテーブル一覧を取得します。
基本のテーブル一覧
-- テーブル名を五十音順(ABC順)で表示 SELECT table_name FROM user_tables ORDER BY table_name;
テーブル数だけ確認
-- テーブルの総数 SELECT COUNT(*) AS table_count FROM user_tables;
テーブルの主要情報を一覧表示
-- テーブル名・行数・表領域・圧縮設定を一覧
SELECT table_name,
num_rows,
blocks,
tablespace_name,
compression,
last_analyzed
FROM user_tables
ORDER BY table_name;
主要カラムの説明:
| カラム名 | 説明 | 備考 |
|---|---|---|
TABLE_NAME |
テーブル名(大文字) | |
NUM_ROWS |
推定行数(統計情報ベース) | ANALYZE/DBMS_STATS収集後の値。リアルタイムではない |
BLOCKS |
使用されているデータブロック数 | サイズの目安に使用 |
AVG_ROW_LEN |
平均行長(バイト) | サイズ見積もりに使用 |
TABLESPACE_NAME |
テーブルが格納されている表領域 | |
COMPRESSION |
圧縮設定(ENABLED / DISABLED) | パーティションテーブルはNULL |
LAST_ANALYZED |
最後に統計収集した日時 | NULLは統計未収集 |
STATUS |
テーブルの状態(VALID / UNUSABLE) | 通常はVALID |
PARTITIONED |
パーティションテーブルか(YES / NO) | |
IOT_TYPE |
索引構成表かどうか(IOT等) | NULLは通常ヒープ表 |
テーブル名をLIKE検索する
-- 「EMP」を含むテーブルを検索 SELECT table_name FROM user_tables WHERE table_name LIKE '%EMP%' ORDER BY table_name; -- 「ORDER_」で始まるテーブルを検索 SELECT table_name FROM user_tables WHERE table_name LIKE 'ORDER\_%' ESCAPE '\' ORDER BY table_name;
WHERE table_name = 'employees' のように小文字で検索してもヒットしません。常に大文字('EMPLOYEES')または UPPER() 関数を使ってください。-- 大文字・小文字を気にしない検索
SELECT table_name
FROM user_tables
WHERE UPPER(table_name) LIKE UPPER('%employees%')
ORDER BY table_name;
ALL_TABLES:アクセス可能な全テーブルを確認する
自分のテーブルだけでなく、他のスキーマで参照権限があるテーブルも含めて確認します。OWNER カラムでどのスキーマのテーブルかが分かります。
アクセス可能な全テーブル一覧
-- オーナー(スキーマ)とテーブル名を一覧
SELECT owner,
table_name
FROM all_tables
ORDER BY owner, table_name;
特定のスキーマに絞り込む
-- HRスキーマのテーブルのみ確認
SELECT table_name,
num_rows,
tablespace_name
FROM all_tables
WHERE owner = 'HR'
ORDER BY table_name;
スキーマごとのテーブル数を集計
-- スキーマ別テーブル数(多い順)
SELECT owner,
COUNT(*) AS table_count
FROM all_tables
GROUP BY owner
ORDER BY table_count DESC;
全スキーマを横断してテーブル名を検索
-- DB全体でテーブル名に「ORDER」を含むテーブルを検索
SELECT owner,
table_name
FROM all_tables
WHERE table_name LIKE '%ORDER%'
ORDER BY owner, table_name;
DBA_TABLES:データベース全体のテーブルを確認する(DBA用)
DBA権限がある場合、DBA_TABLES でシステムテーブルも含むDB全体のテーブルを確認できます。
業務テーブルのみ表示(システムスキーマ除外)
-- Oracleシステムスキーマを除外して業務テーブルのみ表示
SELECT owner,
table_name,
num_rows,
tablespace_name
FROM dba_tables
WHERE owner NOT IN (
'SYS','SYSTEM','DBSNMP','OUTLN','MDSYS','CTXSYS',
'XDB','ORDSYS','EXFSYS','SYSMAN','WMSYS','FLOWS_FILES',
'APEX_PUBLIC_USER','ANONYMOUS'
)
ORDER BY owner, table_name;
スキーマ別テーブル数(全体把握)
-- スキーマ別テーブル数サマリー(システムスキーマ除外)
SELECT owner,
COUNT(*) AS table_count,
SUM(num_rows) AS total_rows,
SUM(blocks) AS total_blocks
FROM dba_tables
WHERE owner NOT IN ('SYS','SYSTEM','DBSNMP','OUTLN')
GROUP BY owner
ORDER BY table_count DESC;
テーブルのカラム構造(列定義)を確認する
テーブルのカラム一覧は USER_TAB_COLUMNS(DBA用は DBA_TAB_COLUMNS)で確認します。データ型・桁数・NOT NULL制約・デフォルト値まで取得できます。
特定テーブルのカラム一覧
-- EMPLOYEES テーブルのカラム構造を確認
SELECT column_name,
data_type,
data_length,
data_precision,
data_scale,
nullable,
data_default,
column_id
FROM user_tab_columns
WHERE table_name = 'EMPLOYEES'
ORDER BY column_id;
実行結果の例:
| COLUMN_NAME | DATA_TYPE | DATA_LENGTH | NULLABLE | DATA_DEFAULT |
|---|---|---|---|---|
| EMPLOYEE_ID | NUMBER | 22 | N | |
| FIRST_NAME | VARCHAR2 | 20 | Y | |
| LAST_NAME | VARCHAR2 | 25 | N | |
| HIRE_DATE | DATE | 7 | N | |
| SALARY | NUMBER | 22 | Y | |
| STATUS_FLG | CHAR | 1 | N | ‘1’ |
| カラム名 | 意味 |
|---|---|
DATA_TYPE |
データ型(VARCHAR2, NUMBER, DATE, CLOB など) |
DATA_LENGTH |
バイト長(VARCHAR2 は最大バイト長) |
DATA_PRECISION |
NUMBERの全体桁数(例: NUMBER(10,2)なら10) |
DATA_SCALE |
NUMBERの小数桁数(例: NUMBER(10,2)なら2) |
NULLABLE |
N = NOT NULL制約あり / Y = NULL許容 |
DATA_DEFAULT |
DEFAULT値(NULLは未設定) |
COLUMN_ID |
テーブル定義時のカラム順序番号 |
全テーブルのカラム数を一覧表示
-- テーブルごとのカラム数を確認
SELECT table_name,
COUNT(column_name) AS column_count
FROM user_tab_columns
GROUP BY table_name
ORDER BY column_count DESC;
特定のカラム名を持つテーブルを検索
-- 「_ID」で終わるカラムを持つテーブルを検索
SELECT table_name,
column_name,
data_type
FROM user_tab_columns
WHERE column_name LIKE '%_ID'
ORDER BY table_name, column_name;
-- 他スキーマも含めて特定カラム名を検索(DBA用)
SELECT owner,
table_name,
column_name,
data_type
FROM dba_tab_columns
WHERE column_name = 'CUSTOMER_ID'
AND owner NOT IN ('SYS','SYSTEM')
ORDER BY owner, table_name;
SQL*Plusで手軽にカラム構造を確認(DESC)
-- SQL*Plus: テーブル構造を表示 DESC EMPLOYEES -- 実行結果の例 -- Name Null? Type -- -------------------- -------- ---------------- -- EMPLOYEE_ID NOT NULL NUMBER(6) -- FIRST_NAME VARCHAR2(20) -- LAST_NAME NOT NULL VARCHAR2(25) -- HIRE_DATE NOT NULL DATE -- SALARY NUMBER(8,2)
テーブルのコメント(論理名・説明)を確認する
USER_TAB_COMMENTS・USER_COL_COMMENTS でテーブルやカラムに設定されたコメント(日本語の論理名など)を確認できます。
テーブルのコメント一覧
-- テーブルに設定されたコメント(論理名)を確認
SELECT table_name,
table_type,
comments
FROM user_tab_comments
WHERE comments IS NOT NULL
ORDER BY table_name;
テーブル名+コメントの組み合わせで一覧表示
-- テーブル物理名・論理名・カラム数を一覧
SELECT t.table_name,
tc.comments AS table_comment,
COUNT(c.column_name) AS col_count
FROM user_tables t
LEFT JOIN user_tab_comments tc ON tc.table_name = t.table_name
LEFT JOIN user_tab_columns c ON c.table_name = t.table_name
GROUP BY t.table_name, tc.comments
ORDER BY t.table_name;
カラムのコメントも含めた詳細一覧
-- テーブル・カラムのコメントを一覧
SELECT c.table_name,
c.column_name,
c.data_type,
cc.comments AS col_comment
FROM user_tab_columns c
LEFT JOIN user_col_comments cc
ON cc.table_name = c.table_name
AND cc.column_name = c.column_name
WHERE c.table_name = 'EMPLOYEES'
ORDER BY c.column_id;
COMMENT ON TABLE テーブル名 IS '論理名'; / COMMENT ON COLUMN テーブル名.カラム名 IS '論理名'; で設定できます。コメントは削除しても NULL になるだけで、ビューには行が残ります(WHERE comments IS NOT NULL で除外)。テーブルの行数・サイズを確認する
統計情報ベースの行数確認(高速)
USER_TABLES.NUM_ROWS は統計収集時点の値です。DBMS_STATS が最後に実行された時刻も合わせて確認できます。
-- テーブルの行数と統計更新日時
SELECT table_name,
num_rows,
last_analyzed
FROM user_tables
WHERE num_rows IS NOT NULL
ORDER BY num_rows DESC;
NUM_ROWS は統計情報の収集タイミングによって実際の行数と異なる場合があります。LAST_ANALYZED が古い(またはNULL)場合は SELECT COUNT(*) で正確な件数を確認してください。正確な行数を取得する(SELECT COUNT)
-- 正確な行数を取得(大規模テーブルは時間がかかる)
SELECT COUNT(*) FROM EMPLOYEES;
-- 全テーブルの行数を一括取得するスクリプト(DBA用)
BEGIN
FOR tbl IN (SELECT table_name FROM user_tables ORDER BY table_name) LOOP
EXECUTE IMMEDIATE
'SELECT COUNT(*) FROM ' || tbl.table_name
INTO :cnt;
DBMS_OUTPUT.PUT_LINE(tbl.table_name || ': ' || :cnt);
END LOOP;
END;
/
テーブルサイズをMB単位で確認
-- 自分のテーブルのサイズ(MB)一覧
SELECT segment_name AS table_name,
ROUND(bytes / 1024 / 1024, 2) AS size_mb,
bytes AS size_bytes,
blocks
FROM user_segments
WHERE segment_type = 'TABLE'
ORDER BY bytes DESC;
テーブルの詳細サイズ情報(行数・平均行長・サイズ)を組み合わせ
-- テーブル名・行数・平均行長・実サイズ(MB)を一覧
SELECT t.table_name,
t.num_rows,
t.avg_row_len,
ROUND(s.bytes / 1024 / 1024, 2) AS size_mb,
t.tablespace_name
FROM user_tables t
LEFT JOIN user_segments s
ON s.segment_name = t.table_name
AND s.segment_type = 'TABLE'
ORDER BY s.bytes DESC NULLS LAST;
テーブルの制約を確認する
主キー・外部キー・NOT NULL・ユニーク制約などは USER_CONSTRAINTS と USER_CONS_COLUMNS で確認します。
特定テーブルの制約一覧
-- テーブルの制約情報
SELECT constraint_name,
constraint_type,
status,
r_constraint_name -- 外部キーの場合、参照先制約名
FROM user_constraints
WHERE table_name = 'EMPLOYEES'
ORDER BY constraint_type, constraint_name;
| CONSTRAINT_TYPE | 制約の種類 |
|---|---|
P |
主キー(PRIMARY KEY) |
U |
ユニーク制約(UNIQUE) |
R |
外部キー(REFERENCES / FOREIGN KEY) |
C |
CHECK制約(NOT NULL も含む) |
V |
ビューの WITH CHECK OPTION |
制約に対応するカラムも含めて確認
-- 制約名とカラム名を結合して表示
SELECT con.constraint_name,
con.constraint_type,
col.column_name,
col.position
FROM user_constraints con
JOIN user_cons_columns col
ON col.constraint_name = con.constraint_name
WHERE con.table_name = 'EMPLOYEES'
ORDER BY con.constraint_type, col.position;
テーブルのインデックスを確認する
テーブルに作成されているインデックスは USER_INDEXES・USER_IND_COLUMNS で確認します。
-- テーブルのインデックス一覧
SELECT index_name,
index_type,
uniqueness,
status,
partitioned
FROM user_indexes
WHERE table_name = 'EMPLOYEES'
ORDER BY index_name;
-- インデックスのカラム構成を確認
SELECT i.index_name,
i.uniqueness,
c.column_name,
c.column_position,
c.descend
FROM user_indexes i
JOIN user_ind_columns c ON c.index_name = i.index_name
WHERE i.table_name = 'EMPLOYEES'
ORDER BY i.index_name, c.column_position;
ALL_OBJECTS:テーブル以外のオブジェクトも含めて一覧確認
テーブルだけでなく、ビュー・シノニム・プロシージャ・ファンクションなどすべてのオブジェクトタイプを一覧したい場合は ALL_OBJECTS を使います。
-- テーブル・ビュー・シノニム・プロシージャを一覧
SELECT object_type,
object_name,
status,
created,
last_ddl_time
FROM user_objects
WHERE object_type IN ('TABLE', 'VIEW', 'SYNONYM', 'PROCEDURE', 'FUNCTION')
ORDER BY object_type, object_name;
-- オブジェクトタイプ別の件数集計
SELECT object_type,
COUNT(*) AS cnt
FROM user_objects
GROUP BY object_type
ORDER BY cnt DESC;
シノニムからテーブルを逆引きする
-- シノニム名から実体のテーブルを確認
SELECT synonym_name,
table_owner,
table_name,
db_link
FROM all_synonyms
WHERE synonym_name = 'EMP'
ORDER BY synonym_name;
ビュー一覧の確認
-- ビューの一覧を確認
SELECT view_name,
read_only
FROM user_views
ORDER BY view_name;
-- マテリアライズドビューの一覧
SELECT mview_name,
refresh_mode,
refresh_method,
last_refresh_date
FROM user_mviews
ORDER BY mview_name;
テーブルの作成日・最終DDL変更日を確認する
-- テーブルの作成日と最終DDL変更日
SELECT object_name AS table_name,
created,
last_ddl_time
FROM user_objects
WHERE object_type = 'TABLE'
ORDER BY last_ddl_time DESC;
-- 直近1ヶ月以内に変更されたテーブル
SELECT object_name AS table_name,
last_ddl_time
FROM user_objects
WHERE object_type = 'TABLE'
AND last_ddl_time >= SYSDATE - 30
ORDER BY last_ddl_time DESC;
未知のデータベースを調査する手順(実践シナリオ)
初めてアクセスするデータベースの全体像をつかむための調査手順をステップで紹介します。
ステップ1:スキーマの全体像を把握する
-- どんなスキーマ(ユーザー)があるか
SELECT owner,
COUNT(*) AS table_count
FROM dba_tables
WHERE owner NOT IN ('SYS','SYSTEM','DBSNMP','OUTLN','MDSYS')
GROUP BY owner
ORDER BY table_count DESC;
ステップ2:テーブル一覧とコメント(論理名)を確認
-- テーブル物理名と論理名を一覧
SELECT t.table_name,
NVL(tc.comments, '(コメントなし)') AS table_comment,
t.num_rows
FROM all_tables t
LEFT JOIN all_tab_comments tc
ON tc.owner = t.owner
AND tc.table_name = t.table_name
WHERE t.owner = 'ターゲットスキーマ名'
ORDER BY t.table_name;
ステップ3:主要テーブルのカラム構成を確認
-- テーブルのカラム情報(論理名付き)
SELECT c.column_name,
c.data_type,
c.data_length,
c.nullable,
NVL(cc.comments, '-') AS col_comment
FROM all_tab_columns c
LEFT JOIN all_col_comments cc
ON cc.owner = c.owner
AND cc.table_name = c.table_name
AND cc.column_name = c.column_name
WHERE c.owner = 'ターゲットスキーマ名'
AND c.table_name = '調査したいテーブル名'
ORDER BY c.column_id;
ステップ4:テーブルの関連(外部キー)を確認
-- 外部キーで繋がっているテーブルを確認
SELECT con.table_name AS 元テーブル,
col.column_name AS 元カラム,
rcon.table_name AS 参照先テーブル,
rcol.column_name AS 参照先カラム
FROM user_constraints con
JOIN user_cons_columns col ON col.constraint_name = con.constraint_name
JOIN user_constraints rcon ON rcon.constraint_name = con.r_constraint_name
JOIN user_cons_columns rcol ON rcol.constraint_name = rcon.constraint_name
WHERE con.constraint_type = 'R'
ORDER BY con.table_name, col.position;
テーブルが見つからないときのトラブルシューティング
ケース1:ORA-00942: 表またはビューが存在しません
-- 原因1: テーブル名の大文字・小文字 -- NG: 小文字で検索 SELECT * FROM user_tables WHERE table_name = 'employees'; -- ヒットしない -- OK: 大文字で検索 SELECT * FROM user_tables WHERE table_name = 'EMPLOYEES'; -- ヒットする -- 原因2: 別スキーマのテーブル → ALL_TABLES で検索 SELECT owner, table_name FROM all_tables WHERE table_name = 'EMPLOYEES'; -- 原因3: シノニムで参照している場合 SELECT synonym_name, table_owner, table_name FROM all_synonyms WHERE synonym_name = 'EMPLOYEES';
ケース2:USER_TABLESに出ないが実際には参照できる
-- ビューかもしれない SELECT view_name FROM all_views WHERE view_name = 'テーブル名'; -- マテリアライズドビューかもしれない SELECT mview_name FROM all_mviews WHERE mview_name = 'テーブル名'; -- オブジェクトタイプを全体で確認 SELECT object_type, owner, object_name FROM all_objects WHERE object_name = 'テーブル名';
ケース3:DBA_TABLESにあるのにALL_TABLESに出ない
-- 権限がない → 権限付与が必要(DBAが実行) GRANT SELECT ON スキーマ名.テーブル名 TO 自分のユーザー名; -- または SELECT_CATALOG_ROLE を付与 GRANT SELECT_CATALOG_ROLE TO 自分のユーザー名;
実務でよく使う便利クエリ一覧
| やりたいこと | SQL(簡略) | ビュー |
|---|---|---|
| 自分のテーブル一覧 | SELECT table_name FROM user_tables |
USER_TABLES |
| 他スキーマも含む全テーブル | SELECT owner,table_name FROM all_tables |
ALL_TABLES |
| 特定スキーマのテーブル | WHERE owner = 'スキーマ名' |
ALL_TABLES |
| テーブル名をLIKE検索 | WHERE table_name LIKE '%キーワード%' |
任意 |
| カラム構造の確認 | SELECT ... FROM user_tab_columns WHERE table_name='T' |
USER_TAB_COLUMNS |
| テーブルのコメント(論理名) | SELECT ... FROM user_tab_comments |
USER_TAB_COMMENTS |
| 行数・サイズ | SELECT num_rows,... FROM user_tables |
USER_TABLES |
| テーブルの実サイズ(MB) | SELECT ... FROM user_segments WHERE segment_type='TABLE' |
USER_SEGMENTS |
| 制約一覧 | SELECT ... FROM user_constraints WHERE table_name='T' |
USER_CONSTRAINTS |
| インデックス一覧 | SELECT ... FROM user_indexes WHERE table_name='T' |
USER_INDEXES |
| 作成日・最終変更日 | SELECT ... FROM user_objects WHERE object_type='TABLE' |
USER_OBJECTS |
| シノニム逆引き | SELECT ... FROM all_synonyms WHERE synonym_name='T' |
ALL_SYNONYMS |
よくある質問
ALL_TABLES は USER_TABLES と同じ結果になります。他スキーマのテーブルも一覧したい場合は、DBAに SELECT ANY TABLE 権限か個別のオブジェクト権限を付与してもらう必要があります。NUM_ROWS が NULL になります。EXEC DBMS_STATS.GATHER_TABLE_STATS('スキーマ名', 'テーブル名') で統計収集すると更新されます。本番環境では定期的な統計収集がパフォーマンスにも影響します。USER_TABLES は自分が所有するテーブルなので、通常はSELECTできます。ただし、STATUS = 'UNUSABLE' の場合や、表領域がオフラインの場合にSELECTできないことがあります。SELECT status, tablespace_name FROM user_tables WHERE table_name = 'T' で状態を確認してください。DBA_TABLES を参照するとこのエラーになります。DBAに GRANT SELECT_CATALOG_ROLE TO ユーザー名 を依頼するか、ALL_TABLES を使ってください。"テーブル名" のようにダブルクォートで囲むと記号や日本語もテーブル名に使えます(引用符付き識別子)。ただしこの場合、データディクショナリには入力した大文字・小文字のまま保存されます。USER_TABLES で検索する際も同じ大文字・小文字で指定する必要があります。まとめ
| ビュー | 範囲 | 利用シーン | 必要権限 |
|---|---|---|---|
USER_TABLES |
自分が所有するテーブル | 日常の開発・テーブル確認 | なし |
ALL_TABLES |
自分がアクセスできる全テーブル | 他スキーマのテーブルも確認したい | なし |
DBA_TABLES |
DB内の全テーブル | DBA作業・全体把握 | DBA権限 or SELECT_CATALOG_ROLE |
USER_TAB_COLUMNS |
カラム構造 | カラム定義・型・NOT NULLの確認 | なし |
USER_TAB_COMMENTS |
テーブルコメント | 論理名(日本語名)の確認 | なし |
USER_SEGMENTS |
セグメントサイズ | 実際のテーブルサイズをMBで確認 | なし |
USER_CONSTRAINTS |
制約情報 | PK・FK・UNIQUE・CHECK | なし |
USER_INDEXES |
インデックス情報 | インデックスの種類・対象カラム | なし |
USER_OBJECTS |
全オブジェクト | 作成日・最終更新日・オブジェクト種別 | なし |
USER_TABLES が基本ですが、「論理名も含めて一覧したい」「カラム数も知りたい」「サイズも把握したい」といった場面ではLEFT JOIN で複数のビューを結合するクエリが実務では最も役立ちます。この記事で紹介したSQLをベースに、自分の環境に合わせてカスタマイズしてください。
