「みんな教えて! 選手権!!」開催のお知らせ

こんにちは。
既存DBのテーブル情報をCREATE文として取得する方法はありますでしょうか?
CREATE文として欲しいのは、他のサーバに開発用として同じDBを構築しようと考えているからです。
よろしくお願いします。

A 回答 (6件)

ごめんなさい、うそ書いちゃいました。



実際のコマンド確認したところ、DDL文ファイルに出力させるには、インポートのコマンドであるimpのINDEXFILEオプションを使用します。

で、そのimpの実行に必要なファイルをexpで取得します。

expの方ですが、ROWS=Nで実行すればデータはエクスポートされずに定義のみエクスポートとなります。


>やはり、catexp.sql及びexpを実行するには、運用を止めて使用していない状態の方が良いのでしょうか?

catexp.sql、たいていDB構築時には流してると思いますよ。
1度流せばいいものなので、expが使えなかったら流すことを検討すればいいと思います。

心配でしたらcatexp.sqlが中でどんなSQLを流しているか自分で見てみるのがいいかと。

expは間違って行の内容まで出力させるとテーブルのサイズによっては大変なことになるのでパラメータの十分な確認が必要です。
    • good
    • 1
この回答へのお礼

ご返事ありがとうございます。
エクスポートとインポートについて、なんとなく見えてきました、catexp.sqlについては、まずexpを実行してみます、expのパラメータは注意が必要ですね。
参考になりました、ありがとうございます。
また、何かありましたらよろしくお願いします。

お礼日時:2004/10/19 19:16

Enterprise Manager や DBA Studio といった、Oracle のツールを使用できますでしょうか?


使用可能であれば、
1.スキーマの中から対象のテーブルを選択
2.類似作成を選択
3.SQL表示ボタンを押す
することで、テーブル名以外の情報を取得できます。
ただし、1テーブルごとなので多数あると大変ですが・・。
同じ環境を構築されるのでしたらEXP,IMPの使用をお勧めします。
    • good
    • 2
この回答へのお礼

ご返事ありがとうございます。
Enterprise Managerがたしかインストールされていました、これを使用するとテーブル情報が取得出来るんですね、テーブル数は100近くありますので、1テーブル毎となると時間は掛かりますね。
Enterprise Managerでテーブル情報が取得出来ることがわかりましたので、参考になりました、ありがとうございます、また、何かありましたらよろしくお願いします。

お礼日時:2004/10/22 13:32

No.4です。



「オブジェクトブラウザ」という言葉が、touge123さんが認識しておられるものと同じかどうか、不安なのですが。

私が認識しているものは、株式会社システムインテグレータの「Oracle開発支援ツール SI Object Browser」のことです。
http://www.sint.co.jp/siob/default.asp

その中のオンラインマニュアルの「4-1 テーブル」の「ソース」タブを見ると、CREATE文を見ることが出来ることが掲載されています。
http://www.sint.co.jp/siob/online8/ob80vol4.html …

その定義内容をコピー&ペーストすれば、他の環境に移植できます。
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。
すみません、「オブジェクトブラウザ」という言葉自体聞き覚えがありませんでした。
オブジェクトブラウザというOracleと密接に連携しがとれるツールが発売されているんですね。
これを使用すると簡単にcreate文が取得出来ますね、あとは、ソフトの調達とユーザーの端末にインストール出来るかという問題がありますが、大変参考になりました、ありがとうございました、また、何かありましたらよろしくお願いします。

お礼日時:2004/10/22 13:25

No.3です。



ああ恥ずかしい!ご質問の意味を取り違えていました。

CREATE文そのものが欲しいのですね。
それでは、オブジェクトブラウザを使用するのは如何でしょうか?(OTNの掲示板では皆さん批判的ですが)
    • good
    • 1
この回答へのお礼

ご返事ありがとうございます。
はい、create文そのものを取得したかったのです。

>それでは、オブジェクトブラウザを使用するのは如何でしょうか?

すみません、知識不足でオブジェクトブラウザでどのようにしたら、create文を取得出来ますでしょうか、
教えて頂けると幸いです。
参考になるHP等でも構いません。
よろしくお願いします。

お礼日時:2004/10/19 19:23

全く詳しくはないのですが…



「CREATE TABLE 新表名 AS SELECT 項目名(「*」でも可)FROM コピー元表名 WHERE句」で出来るはずです。

ただし、NOT NULL以外の制約やトリガーはコピーされないそうです。(データはコピーされます)
    • good
    • 0

expコマンドでデータのエクスポートを行うのではなく、DDL文をテキストファイルに出力させることができます。


詳しくは、
exp help=y
で。

この回答への補足

expコマンドを調べて見ました。
このコマンドを実行する前の準備としてcatexp.sqlを実行する必要があるのは分かったのですが、DBを運用で使用中に実行出来ますでしょうか、やはり、catexp.sql及びexpを実行するには、運用を止めて使用していない状態の方が良いのでしょうか?
よろしくお願いします。

補足日時:2004/10/19 02:26
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。
exp help=yを調べて見ます。

お礼日時:2004/10/19 01:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報