システムの保守をしていると、テーブルのカラムサイズを拡張したいという要件が発生することが多々あります。
そういった場合、既存システムの影響機能を調査することになりますが、設計書やプログラムを地道に調査するのは手間がかかりますので、SQLを使って特定カラムを保持しているテーブルを簡単に調査する方法になります。
ALL_TAB_COLUMNSはテーブルのカラム情報が格納されていますので、特定カラムを検索することができます。
特定カラムを検索するSQL
「MEMO」というカラムをALL_TAB_COLUMNSを使って調査するサンプルSQLです。
DESC TB_EMP; 名前 NULL? 型 ---------------------- EMP_ID NOT NULL VARCHAR2(10) EMP_NAME VARCHAR2(100 CHAR) BIRTH_YMD DATE SEX VARCHAR2(1 CHAR)MEMO VARCHAR2(500 CHAR)DESC TB_EMP_HISTORY; 名前 NULL? 型 ---------------------- EMP_ID NOT NULL VARCHAR2(10) NO NUMBER(10) EMP_NAME VARCHAR2(100 CHAR) BIRTH_YMD DATE SEX VARCHAR2(1 CHAR)MEMO VARCHAR2(500 CHAR)SELECT OWNER , TABLE_NAME , COLUMN_NAME , DATA_TYPE , DATA_LENGTH FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME = 'MEMO' ; TABLE_NAME COLUMN_NAME DATA_TYPE DATA_LENGTH ------------------------------TB_EMP MEMO VARCHAR2 500 TB_EMP_HISTORY MEMO VARCHAR2 500
以上です。