• ベストアンサー

select insert 句

自サーバDBでselectしたデータをそのまま他サーバDBへ直接insert出来ますか? 出来るんであればその方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.4

ANO.3です。 後でみたところ、1行抜けてしまいました。 訂正というか、下の行を追加します。 >回線エラーなのでロールバックしようとすると、 >ロールバックする情報は自サーバで、ロールバックする先は、他サーバなのに >回線はつながらない といったことがおきないことを確認しておく必要があるはずです。 >・・・2フェーズコミットのサポートはしていたはずなので大丈夫だったと思いますけどね。

narang
質問者

お礼

ありがとうございました。

その他の回答 (3)

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.3

>自サーバDBでselectしたデータをそのまま他サーバDBへ直接insert出来ますか? insert into 先テーブル名@他サーバへ接続するデータベースリンク名 select * from 元テーブル名 でできると思いますけど、 処理の途中で回線エラーが起きると大丈夫かな?とちょっと不安。 ま、うまくいくんでしょうけど検証しておいたほうがいいとは思います。 回線エラーなのでロールバックしようとすると、 ロールバックする情報は自サーバで、ロールバックする先は、他サーバなのに 回線はつながらない ・・・2フェーズコミットのサポートはしていたはずなので大丈夫だったと思いますけどね。 他サーバDBでinsertを行う際に、自サーバDBのテーブルをselectで参照したほうが あまり気にする必要がなくなります。 他サーバで以下を実行する方法。 insert into 先テーブル名 select * from 元テーブル名@自サーバへ接続するデータベースリンク名

narang
質問者

お礼

ありがとうございました。

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

ORACLEのカテゴリなのでそれが前提ですが CREATE DATABASE LINKでデータベースリンクを作成できる環境なら、他のサーバーのDBを参照することができます。 http://docs.oracle.com/cd/E16338_01/server.112/b56299/statements_5005.htm

narang
質問者

お礼

ありがとうございました。

  • pa_cotta
  • ベストアンサー率43% (25/58)
回答No.1

SQLを実行したユーザで接続出来ればできるはずです。対象のスキーマ名をテーブル名の前に付けてあげればいいはず。 権限がないなどで接続が出来ない場合はダンプファイルを取り込むなりすればいいでしょう。

narang
質問者

お礼

ありがとうございました。

関連するQ&A