A5:SQL Mk-2

開発のこと、日々のこと

SELECT文の結果を異なるDBの指定テーブルにインポートしたい

ホーム フォーラム A5:SQL Mk-2掲示板 SELECT文の結果を異なるDBの指定テーブルにインポートしたい

  • このトピックには2件の返信、1人の参加者があり、最後にjun1sにより2年、 1ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #12453 返信
    jun1s
    ゲスト

    いつも大変便利に使わせて頂いております。一部機能を有償(年間1万円/ユーザーぐらい)にしても私は使わせて頂きたいです。

    現在、SQL Server 2000からPostgreSQLへデータ移行を行っております。
    古いテーブルと新しいテーブルにはスキーマに差異(列名が変わっていたり、追加の列があったり、値の表現が変更されたり)がある為、スキーマ間のデータ転送を使うことができません。

    その為、一旦SQL Server 2000側で、新しいテーブルのスキーマと同じ形に整形するSELECT文を作り、その結果をA5:SQL mk2を用いて「レコードのコピー」「レコードの貼り付け」を行うことでデータ転送をしております。

    ただ、同様のテーブルが20件以上あり、その都度これを手動で行うのが大変で、なんとか一括で行えないものかと思い、A5:SQL mk2の機能をいろいろと探しております。100万件近いデータの場合、「レコードのコピー」にも時間がかかり、応答が返ってこなくなることもあります。

    何か良い方法、手順などございませんでしょうか。

    #12491 返信
    松原正和
    キーマスター

    jun1s さんこんにちは。
     
    SELECTの結果を他のデータベースに直接移行するような機能はつけていないのですが、たとえば元DB側に先DBと同じレイアウトのワークテーブルを作成する、あるいは先DB側に元DBと同じレイアウトのワークテーブルを作成して、ワークテーブル経由で移行するなどはいかがでしょうか?。

    あるいは、CSVを経由するなどです。

    レコードのコピーと貼り付けは、内部的にバルクインサートが使えないため、速度的にはかなり不利になると思います。

    #12642 返信
    jun1s
    ゲスト

    松原さん、お返事ありがとうございます。

    レコードのコピーと貼り付けは、やはり速度的に不利でしたか…。
    同じレイアウトのワークテーブルを作ることも考えてみましたが、なるべく元環境に影響の出ない方法を取りたい為、断念しています。

    ご提案にあったCSV経由での移行をすることに致しました。
    また、SELECTの結果をCSVで出力する際に、CSVファイル名を「移行先のテーブル名.csv」とすることで、A5:SQL mk2の「連続インポート」が使える事に気が付きました。

    これですと、事前にCSVを作るのはちょっと大変ながら、インポートは一括で行える為とても便利でした。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: SELECT文の結果を異なるDBの指定テーブルにインポートしたい
あなたの情報:




コメントは受け付けていません。