プロが教えるわが家の防犯対策術!

教えてください。
今オラクルのDBにTEST1テーブルが存在するとします。
------TEST1---------------------
id varchar(5) Primary Key
name varchar(20)
old int
--------------------------------

今このテーブルとまったく同じデータを持ち、同じ構成のテーブルTEST2を
作成したいと考えています。

(1)create table TEST2(
id varchar(5) primary key,
name varchar(20),
old int
);
(2)insert into TEST2(
id, name, old)
values
(select id, name, old from TEST1);
としてTEST2テーブルを作成して、TEST1のデータを格納していますが、

他の方法はないでしょうか?

たとえばこんなコマンドはありませんが、
COPY TEST1 TEST2
とか、
オラクルマネージャみたいなもので、
コピペして、名前をTEST2にする
とかなんでもいいです。
TEST1のバックアップをとりたいのですが・・・・
すみません、わかりづらい説明で。
宜しくお願い致しますm(_ _)m

A 回答 (4件)

こんにちわ。



Create table test2 as select * from test1;
でOk です。
上記SQL 文は、Create table 文 (の拡張) ですので
Rollback Segment を使用しない分、Insert 文で
データを投入するより高速に処理できます。
    • good
    • 0

exportユーティリティを使うのはどうでしょうか?



【exp ユーザー名/パスワード tables=表名 file=ファイル名】
が基本構文です。OSファイルとしてバックアップしておけます。
DBオブジェクトに戻す場合はimportユーティリティを使用します。

【imp ユーザー名/パスワード tables=表名 file=ファイル名】
としてバックアップしたファイルを指定すれば元通りになります。

exp/impユーティリティはたくさんのオプションがありますので、
「ユーティリティ」マニュアルでご確認ください。

マニュアルはダウンロードできます。ただし登録が必要。

参考URL:http://otn.oracle.co.jp/document/index.html
    • good
    • 0

もし、仕事でやってるなら、何らかの支援ツールを使ってもいいんではないかと思います。



以前ORACLE標準ツールでシコシコやっていたんですが、下記URLのツールを使って、飛躍的に効率UPしたことがあります。

また、ものによっては、効率UPとSQLの勉強も出来るのもあります。

探せば、いろいろ出てくると思います。

参考URL:http://www.sint.co.jp/jisseki/html/products.html
    • good
    • 0

CREATE TABLE test2 AS SELECT * FROM test1;

    • good
    • 0

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