豚吐露@wiki

既存のdatabaseからDDLを生成したい

最終更新:

ohden

- view
管理者のみ編集可

既存のdatabaseからDDLを生成したい

Oracle Database 11gR2
Windows Server 2008R2-64bit Professional

既存のDBの色々な定義が分からなくて、環境の構築手順通りにやっても作れないとか、手順書自体が無いって事、よく有りますよね。

あるんですよ...orz

で、そういう時に、『DBMS_METADATA』を使って、既存のdatabaseから色んな定義を読み取ってDDLを生成していく方法をまとめる。(`・ω・´)



ココら辺は共通で設定しとかなきゃダメな項目。
  1. SQL> SET LINESIZE 9999
  2. SQL> SET LONG 99999 --LONG、BLOB、BFILE、CLOB、NCLOB、XMLを表示するサイズをByteで指定。この設定しとかないとまともに読めない。

あとwhereに指定するOWNER名とかは、全部大文字で書くこと。小文字だとhitしないよ。

  • TABLESPACE
  1. SQL> SELECT * FROM DBA_TABLESPACES; --表領域一覧
  2. SQL> SELECT DBMS_METADATA.GET_DDL('TABLESPACE','【TablespaceName】') FROM DUAL;

  • TABLE
  1. SQL> SELECT * FROM DBA_TABLES WHERE OWNER='【LoginUser】'; --表一覧
  2. SQL> SELECT DBMS_METADATA.GET_DDL('TABLE', '【TableName】', '【SchemeName】') FROM DUAL;

  • VIEW
  1. SQL> SELECT view_name FROM user_views; --『select *』で定義も取れる。確認だけならこれだけでもok。
  2. SQL> SELECT DBMS_METADATA.GET_DDL('VIEW', '【TableName】', '【SchemeName】') FROM DUAL;

  • USER
  1. SQL> SELECT * FROM DBA_USERS; --ユーザ一覧
  2. SQL> SELECT DBMS_METADATA.GET_DDL('USER','【UserName】') FROM DUAL;
出てくるDDLは、暗号化後のパスワードが表示される。
  1. CREATE USER "HOGE" IDENTIFIED BY VALUE '**********'--暗号化後の値を入力するので、Login時は暗号化前のパスワードを指定。
  2. CREATE USER "HOGE" IDENTIFIED BY '**********'--入力した値がパスワードになる




更新日: 2015年10月27日 (火) 11時34分08秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
目安箱バナー