Help us understand the problem. What is going on with this article?

OracleのdumpファイルからDDLを抜き出す

More than 1 year has passed since last update.

参考サイト

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
shota-nekoneko
猫大好きおっさん
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away