豚吐露@wiki
既存のdatabaseからDDLを生成したい
最終更新:
Bot(ページ名リンク)
-
view
既存のdatabaseからDDLを生成したい
既存のDBの色々な定義が分からなくて、環境の構築手順通りにやっても作れないとか、手順書自体が無いって事、よく有りますよね。
あるんですよ...orz
で、そういう時に、『DBMS_METADATA』を使って、既存のdatabaseから色んな定義を読み取ってDDLを生成していく方法をまとめる。(`・ω・´)
ココら辺は共通で設定しとかなきゃダメな項目。
- SQL> SET LINESIZE 9999
- SQL> SET LONG 99999 --LONG、BLOB、BFILE、CLOB、NCLOB、XMLを表示するサイズをByteで指定。この設定しとかないとまともに読めない。
あとwhereに指定するOWNER名とかは、全部大文字で書くこと。小文字だとhitしないよ。
- TABLESPACE
- SQL> SELECT * FROM DBA_TABLESPACES; --表領域一覧
- SQL> SELECT DBMS_METADATA.GET_DDL('TABLESPACE','【TablespaceName】') FROM DUAL;
- TABLE
- SQL> SELECT * FROM DBA_TABLES WHERE OWNER='【LoginUser】'; --表一覧
- SQL> SELECT DBMS_METADATA.GET_DDL('TABLE', '【TableName】', '【SchemeName】') FROM DUAL;
- VIEW
- SQL> SELECT view_name FROM user_views; --『select *』で定義も取れる。確認だけならこれだけでもok。
- SQL> SELECT DBMS_METADATA.GET_DDL('VIEW', '【TableName】', '【SchemeName】') FROM DUAL;
- USER
- SQL> SELECT * FROM DBA_USERS; --ユーザ一覧
- SQL> SELECT DBMS_METADATA.GET_DDL('USER','【UserName】') FROM DUAL;
出てくるDDLは、暗号化後のパスワードが表示される。
- CREATE USER "HOGE" IDENTIFIED BY VALUE '**********' … --暗号化後の値を入力するので、Login時は暗号化前のパスワードを指定。
- CREATE USER "HOGE" IDENTIFIED BY '**********' … --入力した値がパスワードになる
更新日: 2015年10月27日 (火) 11時34分08秒