dポイントプレゼントキャンペーン実施中!

全く違うサーバに載っているDBのデータ同士を結合するいい手段はないでしょうか?
DBは両者ともOracleですが9と10という違いがあります。
SERVER1に載っているDBは商品管理のためのものです。主キーは「品ID」です。
SVR2に載っているDBは、保証期間の管理をするためのものです。主キーは「品ID&メーカーID」です。

唯一データのつながりを作れそうなのは両者の主キーのみです。
あとのデータには何にもつながりはありません。
どちらかのサーバに片方のDBのテーブルを作るとかビューを作ればいいかと思いましたが、その方法についてはNGとされています。
(とりあえずその方法でやる場合できますでしょうか???)
DBに何かを作ることなくデータの結合をさせれないでしょうか?
SQLplusなりSQLクリエイトツールなりどんな方法でもDB自体汚さない限り問題はありません。

「異なるサーバのDBデータ同士を結合するに」の質問画像

A 回答 (3件)

「CREATE DATABASE LINK」でデータベースリンクを作成すれば可能だと思います


サーバー1上で
「CREATE DATABASE LINK link2
CONNECT TO ユーザー名 IDENTIFIED BY password
USING 'サービス名' 」
を実行しデータベースリンクを作成し
http://download.oracle.com/docs/cd/E16338_01/ser …

FROM テーブル名 INNER JOIN テーブル名2@link2
on テーブル名.項目名 = テーブル名2@link2.項目名

でJOINできます。
    • good
    • 2
この回答へのお礼

ありがとうございます 大変参考になりました!

お礼日時:2011/07/19 23:44

DBLinkもダメってことなら、Accessで両方のテーブルのリンクテーブル作って


AccessのSQLを発行すればSQLのみで結合できますけどね。
データ量によってはレスポンス悪いしOracleのサーバに負荷かかるし
お勧めではありませんけど。
プログラムで、両方のテーブルの全レコード取得して、マッチングプログラム作るよりはまし。
ということで一応書いておきます。
    • good
    • 2
この回答へのお礼

ありがとうございます 大変参考になりました!

お礼日時:2011/07/19 23:44

>どちらかのサーバに片方のDBのテーブルを作るとかビューを作ればいいかと思いましたが、


>その方法についてはNGとされています。

>DBに何かを作ることなくデータの結合をさせれないでしょうか?

これってDB上になにも作成してはいけないということでしょうか?
データベースリンクも作成不可ですか?

そうなるとSQLのみでは不可能です。
アプリケーションで、双方のDBにアクセスしてテーブルの内容を取得し、
アプリケーション上で結合するロジックを書くしかないでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます 大変参考になりました!

お礼日時:2011/07/19 23:44

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A