LoginSignup
4
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-16

参考サイト

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
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1