参考サイト
export した dump から DDL を作成する方法 with Perl ワンライナー
前提
Oracleのダンプファイルは事前に取得済みの状態
DDLをダンプから抜き出し
imp system/{パスワード} file=oracle.dmp show=y log=imp.log FULL=y
実行可能なDDLに整形
perl -ple '/^ "/ or s/.*//;s/^ "(.+)"$/$1/;s/^(CREATE|ALTER|ANALYZE|GRANT|COMMENT|AUDIT)/\/\n\n$1/i;END{print "\/"}' imp.log > ddl.sql
#おまけ
表領域の確認.sql
col OWNER format A20
col s_bytes format 999,999,999,999
select TABLESPACE_NAME,OWNER,sum(BYTES) s_bytes from dba_segments group by OWNER,TABLESPACE_NAME order by TABLESPACE_NAME,OWNER;
ユーザーのパスワード忘れちゃったら.sql
--DBA_USERSを参照し、ユーザ名とパスワードを取得します
--例としてSYSを使用します
SELECT USERNAME,PASSWORD FROM DBA_USERS;
USERNAME PASSWORD
------------------------------ ------------------------------
SYS hogehoge (←適当な値にしてます)
・
・
・
--SYSのパスワードをここでは「test」に変更します
ALTER USER SYS IDENTIFIED BY test;
--SYSでログインします
CONNECT SYS/test@&接続文字列 AS SYSDBA
--何らかの作業を行う
--DBA_USERSを参照して取得していたパスワードに戻します。
ALTER USER SYS IDENTIFIED BY VALUES 'hogehoge';
--参考
http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=305