- ベストアンサー
テーブルのCreate文
お世話になります。 現在、52テーブルあるDBがあり、別のDBに同じテーブルを作成するため、 それらのテーブルのCreate文を作らなくてはなりません。 一つ一つ属性を調べて作成するのではなく、一度に作る方法がありましたら、教えて下さい。 時間がないため、「直ぐに回答ほしいです」にチェックを 入れさせていただきました。 よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
script作成じゃなですけど。 こんなのもあります。 COPY FROM user/passwd@from_db TO user/passwd@to_db CREATE a_tbl USING select * from a_tbl; 使用方法: COPY FROM <db> TO <db> <opt> <table> { (<cols>) } USING <sel> <db> : scott/tiger@d:chicago-mktgなどのデータベース文字列 <opt> : APPENDまたはCREATE、INSERT、REPLACEキーワードのうちの1つ <table>: 接続先表名 <cols> : 接続先列別名のカンマ区切りリスト。 <sel> : 有効なSQL SELECT文 FROM句またはTO句が欠落している場合は現行のSQL*Plus接続を使用します。
その他の回答 (4)
- entree
- ベストアンサー率55% (405/735)
標準のパッケージを使うこのような方法もあります。 set head off set lines 1000 set pages 1000 SELECT DBMS_METADATA.GET_DDL('TABLE', table_name) FROM user_tables; SELECT DBMS_METADATA.GET_DDL('INDEX', index_name) FROM user_indexes;
お礼
遅くなってしまい、申し訳ありません。 これはまだ使ったことがないので、チャレンジしてみます。 回答をありがとうございました。m(__)m
- sapporo30
- ベストアンサー率33% (905/2715)
OSは、UNIXですか? NT ですか? UNIXだとして、 $ORACLE_HOME/bin に exp というコマンドが あります。 % exp USER_ID/PASSWD@接続文字列 例% exo scott/tiger@dev1 で出てくる表示にしたがって、進めます。 DB, USER TABLE のところで、USER (2) を選択して、あとはエンターを押せば、 export.dmp というファイルが出来ます。 このファイルを 別のDBがあるサーバーに コピーします。 コピーすると、今度は、 % imp USER_ID/PASSWD@接続文字列 とします。 という所です。 難しいようであれば、export/import はあきあらめて ツールを使ってやってみましょう。 http://www.sint.co.jp/siob/default.asp このサイトから試用版をダウンロードして インストールしてください。 このツールだと、元のDBのテーブルを参照すると そのソースが見えますので、簡単にDDL分が 取得できます。
補足
ご親切にありがとうございます。 OSはNTです。書かずに申し訳ありませんでした。 先方はスクリプトが欲しいとのことなので、 スクリプト作成後にチャレンジしてみます。 ありがとうございます!
- sapporo30
- ベストアンサー率33% (905/2715)
No1 です。補足します。 まったく同じテーブルをということなので DDL分を作成するのでなく、 export/import ユーティリティを使用してという ことです。
補足
早速のご回答をありがとうございます。 export/import ユーティリティは、どのように使用するのでしょうか? 初歩的な質問で、申し訳ありません。
- sapporo30
- ベストアンサー率33% (905/2715)
export して、import が確実な方法と 思います。
お礼
お礼が遅くなってしまい、申し訳ありません。 このような方法もあるのですね。 知りませんでした。 ありがとうございました。m(__)m