Oracle/テーブル一覧を件数と同時に表示するSQL のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Oracle/テーブル一覧を件数と同時に表示するSQL へ行く。
- 1 (2012-03-13 (火) 15:47:31)
- 2 (2012-03-13 (火) 15:47:41)
- 3 (2012-03-13 (火) 18:56:57)
- 4 (2014-02-06 (木) 10:58:53)
- 5 (2015-02-27 (金) 15:53:37)
テーブル一覧を件数と同時に表示するSQLは以下の通りです。COUNT()を利用しないと件数が取れないので、SQL1本では取得できないためPL/SQLで解決します。
DECLARE NUM_COUNT NUMBER; BEGIN FOR CUR IN (SELECT * FROM USER_TABLES) LOOP EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO :NUM_COUNT FROM ' || CUR.TABLE_NAME INTO NUM_COUNT; DBMS_OUTPUT.PUT_LINE( CUR.TABLE_NAME || ' : ' || NUM_COUNT || '件'); END LOOP; END; /
Analyze直後であれば、NUM_ROWSに値が入ってくるので以下のSQLでも抽出可能です。
SELECT T.TABLE_NAME, T.NUM_ROWS , C.COMMENTS FROM USER_TABLES T, USER_TAB_COMMENTS C WHERE C.TABLE_NAME(+)=T.TABLE_NAME ORDER BY T.TABLE_NAME ;