- ベストアンサー
select insert 句
自サーバDBでselectしたデータをそのまま他サーバDBへ直接insert出来ますか? 出来るんであればその方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANO.3です。 後でみたところ、1行抜けてしまいました。 訂正というか、下の行を追加します。 >回線エラーなのでロールバックしようとすると、 >ロールバックする情報は自サーバで、ロールバックする先は、他サーバなのに >回線はつながらない といったことがおきないことを確認しておく必要があるはずです。 >・・・2フェーズコミットのサポートはしていたはずなので大丈夫だったと思いますけどね。
その他の回答 (3)
- Siegrune
- ベストアンサー率35% (316/895)
>自サーバDBでselectしたデータをそのまま他サーバDBへ直接insert出来ますか? insert into 先テーブル名@他サーバへ接続するデータベースリンク名 select * from 元テーブル名 でできると思いますけど、 処理の途中で回線エラーが起きると大丈夫かな?とちょっと不安。 ま、うまくいくんでしょうけど検証しておいたほうがいいとは思います。 回線エラーなのでロールバックしようとすると、 ロールバックする情報は自サーバで、ロールバックする先は、他サーバなのに 回線はつながらない ・・・2フェーズコミットのサポートはしていたはずなので大丈夫だったと思いますけどね。 他サーバDBでinsertを行う際に、自サーバDBのテーブルをselectで参照したほうが あまり気にする必要がなくなります。 他サーバで以下を実行する方法。 insert into 先テーブル名 select * from 元テーブル名@自サーバへ接続するデータベースリンク名
お礼
ありがとうございました。
- nora1962
- ベストアンサー率60% (431/717)
ORACLEのカテゴリなのでそれが前提ですが CREATE DATABASE LINKでデータベースリンクを作成できる環境なら、他のサーバーのDBを参照することができます。 http://docs.oracle.com/cd/E16338_01/server.112/b56299/statements_5005.htm
お礼
ありがとうございました。
- pa_cotta
- ベストアンサー率43% (25/58)
SQLを実行したユーザで接続出来ればできるはずです。対象のスキーマ名をテーブル名の前に付けてあげればいいはず。 権限がないなどで接続が出来ない場合はダンプファイルを取り込むなりすればいいでしょう。
お礼
ありがとうございました。
お礼
ありがとうございました。