USER_TAB_COLUMNSを使ったOracleDBのテーブル調査
DB①が壊れたのでDB②に①の内容を退避させたが、
テーブル定義が全て正しく退避されているか確認をするため、
USER_TAB_COLUMNSを使って調査を行った。
【基本】
select * from USER_TAB_COLUMNS;
--ユーザがアクセスできる全てのテーブルのカラムが抽出される
【実施したSQL】
SELECT
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
DATA_SCALE,
NULLABLE,
DEFAULT_LENGTH,
DATA_DEFAULT
FROM
USER_TAB_COLUMNS
WHERE
TABLE_NAME IN ('テーブル名','テーブル名',…中略…,'テーブル名')
--テーブル名を制限しないと1000レコード超したため
ORDER BY TABLE_NAME, COLUMN_NAME
--Diffを見やすくするためのorderby
これを①と②で実施し結果を比較した