2017-04-17 15 views
0

私はデータベースとしてOracleを使用しています。1つのデータベースから別のデータベースにOracleのテーブルをコピーする方法

私はQA環境(QA_1)を持っていますが、今では別の新しいQA環境(QA_2)の作成が完了しました。ただし、QA_1テーブルのデータをQA_2にコピーする必要があります。

1つのデータベーステーブルから別のデータベーステーブルにコピーするにはどうすればよいですか?だから、次の構文に似た何か:

INSERT INTO QA_2.app_prop (prop_id, prop_name, prop_value) 
SELECT prop_id, prop_name, prop_value FROM QA_1.app_prop WHERE prop_id IN 
(SELECT prop_id FROM app_env WHERE function = 'CCC'); 

QA_1への私のユーザー接続は次のとおりです。

host name: uat-blah.foo.foo.com 
port: 2501 
servicename: uat 

私はGoogleの周りを見ていると、ここstackoverflowの上で、私はそのいずれかの構文を見つけることができませんでした私が探していることをします。

私はSQLのためにプラス

COPY FROM username/[email protected] 
TO username/[email protected] - 

が、無駄に構文を試してみました。

答えて

3

COPYコマンドは、SQL * Plusの将来のリリースで廃止される予定です。 SQL*Plus User's Guide and Reference-Release 9.2

datapumpまたはCTASのようないくつかの方法があります。 Database Linkも使用できます。

SQL> CREATE DATABASE LINK dblink_QA_1 
CONNECT TO QA_1_app_prop_SCHEMA 
IDENTIFIED BY password 
USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = uat-blah.foo.foo.com)(PORT = 2501)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = uat)))'; 

そして

SQL> INSERT INTO QA_2.app_prop (prop_id, prop_name, prop_value) 
SELECT prop_id, prop_name, prop_value FROM [email protected]_QA_1 WHERE prop_id IN 
(SELECT prop_id FROM [email protected]_QA_1 WHERE function = 'CCC'); 
ツーあなたのinsert文を変更
関連する問題