Oracleで全てのテーブルやインデックスのCreate文を作成する方法

Oracle で指定したユーザーが所有している全てのテーブルやインデックスのCreate文(DDL文)を作成するには dbms_metadata.get_ddl パッケージを利用する必要があります。

但し残念な点として、PostgreSQLなどと違って完全なDDL文が生成されるわけではないので、作成後に不要な行を削除したりする必要があります。ご注意を。

テーブルのCreate文を作成する

全テーブルの create table 文を作成します。
まずはoracleユーザーでSQL*Plusに接続してパラメータをセットします。

続いて必要であればオプションを入力します。
オプションとしては例えば下記のようなものがありますが、無理して指定する必要もありません。

spool を指定して出力されるファイルを指定します。

Create文を生成します。

spool を停止します。

これでspoolで指定したファイル(例 /tmp/create_table.sql )にCreate table文が作成されているはずです。

インデックスのCreate文を作成する

全インデックスの create index 文を作成します。
まずはoracleユーザーでSQL*Plusに接続してパラメータをセットします。

続いて必要であればオプションを入力します。
オプションは先ほどの create table で利用したものが使えます。

spool を指定して出力されるファイルを指定します。

Create文を生成します。

spool を停止します。

これでspoolで指定したファイル(例 /tmp/create_index.sql )にCreate index文が作成されているはずです。

3 COMMENTS

あ~さ~

最後に
SPOOL OUT
も実行したほうが便利だと思います。

返信する
おかしら

コメントありがとうございます!
SPOOL OUT はOSレベルでサポートが分かれたので記載しませんでした。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です