ablog

不器用で落着きのない技術者のメモ

データベース内の全テーブルの一覧を取得するPL/SQL

Oracleデータベース内の全テーブルの一覧を取得するPL/SQLを作ってみた。

  • table_list.sql
set echo off
set heading off
set pagesize 0
set linesize 10000
set trimout on
set trimspool on
set feedback off

col spool_file_name new_value spool_file_name format a100
select 'table_list_'||to_char(sysdate,'YYYYMMDDHH24MISS') || '.csv' spool_file_name from dual;


spool &spool_file_name

select 'owner,table_name' header from dual;
select owner||','||table_name from dba_tables;

spool off

exit

実行してみるとこんな感じ。

$ sqlplus system/manager @table_list.sql
$ head -3  table_list_20090630140347.csv
owner,table_name
SYS,TAB$
SYS,USER$