2016-04-06 15 views
0

私はDB1にあるいくつかのテーブルのデータをDB2に存在するテーブルにコピーするperlスクリプトを作成しています。 私はDB2に存在する各テーブルの挿入クエリを含むDB3のテーブルを持っています。あるDBから別のDBにデータをコピーする

以下は、たとえば1つのテーブルのクエリです。

Insert into ACTION_BLOCK 
(ACTION_BLOCK_ID, RULE_EXPR_ID, ACTION_BLOCK_ORDER) 
Values(); 

Iは、ハッシュテーブルへとロード結果をDB1から

  1. ロジック以下読み出したデータを実装すると考えます。
  2. ハッシュの各要素について
    • DB2にINSERTクエリを実行して値を挿入クエリの値()キーワード(「ハッシュのデータ」)
    • を交換します。 DBで

しかし、データだけでなく、日付が含まれている場合があります。その場合は、values('data in hash')というクエリのキーワードvalues()を直接置き換えることはできません(値の後にdd\mm\yyyyなど)。 誰でもこの挑戦を克服する方法を教えてもらえますか?それがより明確に例えば下に考える:

DB1DB2ようにするに

は、テーブルには、ACTION_BLOCKと呼ばれています。 DB1_ACTION_BLOCKテーブルにあるデータをDB2_ACTION_BLOCKテーブルにコピーする必要があります。

私の論理によれば、テーブルの挿入クエリは、次のようになります。DB3

values(01,02,02/02/2016,09); 

日付形式があるので、これは私にエラーをスローします:私は「値()」私は下記のようになるDB1からもらっ番目のデータとキーワードを置き換える上記のクエリで

Insert into ACTION_BLOCK 
(ACTION_BLOCK_ID, RULE_EXPR_ID,RULE_DATE,ACTION_BLOCK_ORDER) 
Values(); 

正しくありません。以下に示すように理想的には、それは次のようになります。

values(01,02,to_date('02/02/2016','mm/dd/yyyy'),09); 

しかしDB1からのデータが含まれている私のハッシュだけではto_dateキーワードとフォーマットせずに日付を持っています。

この例で問題がはっきりとわかることを願っています。純粋なSQLで

+0

これは少し不明です。 3つのデータベースすべてに含まれているものと、期待される出力を想定して、完全なサンプルを作成できますか? – simbabque

+0

'DB3'には実際のSQLコードが含まれていますか? – Borodin

+0

DB3には、DB2の各テーブルの挿入クエリが含まれています。 – nithin

答えて

0

は、あなただけ書きます。

INSERT INTO DB2.dbo.ACTION_BLOCK 
select * from DB1.dbo.ACTION_BLOCK 

ただ、Perlでそれをラップし、ボブのあなたの叔父!

関連する問題