• 締切済み
  • 困ってます

【PostgreからSQL-ServerのテーブルをSelect】

【PostgreからSQL-ServerのテーブルをSelect】 PostgreからSQL-ServerのDBにあるテーブルをSelectしたいのですが、 ODBCまでは設定したものの、それ以降のやり方がわかりません。 どなたか教えていただけないでしょうか。 【参照元】 *Windows 2003 ServerR2(32Bit) *SQL-Server 2005 【参照先】 *Windows 2003 ServerR2(32bit) *PostgreSQL 8.2 参照先と参照元を変更すればSQL-Server上で出来そうなのですが、 今回、Postgre側からSQL-ServerにSelectしなければなりません。 OracleでいうところのDB Linkなのですが、どなたか教えていただけないでしょうか。 URLのご提示でも結構です。 どうぞよろしくお願いいたします。 Postgre ---- Select(後にViewに変更予定) ----→ SQL-Server

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1850
  • ありがとう数8

みんなの回答

  • 回答No.2

Perl DBI を利用した DBI-Link というモジュールで、PostgreSQL以外のDBに直接SQLを発行できます。ただ、PL/Perlを使っているため、Perlのインストールが必要です。

参考URL:
https://github.com/davidfetter/DBI-Link

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Select結果をSelect

    お世話になります。 以下のSQL文のイメージでselectの結果をさらにselectしたいのですが”subquery has too many columns”というエラーを吐かれます。 Postgreに合った書き方がお分かりでしたら教えてください。 よろしくお願いします。 select * from [DB名] where [パスワード] = 'test' IN ( select * from [DB名] where [ユーザID]='1111' order by [更新日] desc limit 3) [やりたいこと] テストDBからユーザIDが1111の行を更新日をキーに降順で並べ、先頭から3行分を取り出す。 その3行からパスワードが"test"のものをselectしたい。

  • 別々のサーバ

    VB6.0で ORACLE9iでoo4oで接続しています。 サーバが2台あります。 SERVER1とSERVER2です。 SERVER1は保存するサーバ SERVER2はマスタが入っているサーバ CSVから取り込んだデータをSERVER2のテーブルに保存して、そのテーブルの3項目(フィールド)だけSERVER1の変換マスタを参照してSERVER2の変換する3項目(フィールド)をUPDATEするんですけど、一つのSQL文でSERVER1とSERVER2のテーブルを使ってかけるのでしょうか?

  • 【SQL】SELECT文の無限ループ時の対応について

    先日、副問い合わせを用いたSELECT文で特定の属性を表示しようとしたところ、同じ参照結果が表示され続けるという現象がおきてしまいました。 SELECT文の結果が表示され続け、コマンドが入力できなかったため、その時はSQL*Plusを強制終了してセッションを切ったのですが、 SELECT文の表示を途中で強制終了させるようなことは可能でしょうか? DB等の環境は以下のようです。 DB:Oracle10g release2 DBクライアント:SQL*Plus

  • 回答No.1

PostgreSQL 8.4から、SQL/MED準拠でCREATE SERVERを実装しているようなので、ご希望のような操作が可能かも知れません。 http://www.postgresql.jp/document/8.4/html/sql-createserver.html

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • SQL-Server2000の「サーバー名」を変更する方法について

    SQL-Server2000を導入しています。(OSはWindows2000Server) 現在、サーバ名を「DB\SUPER」としています。 このサーバ名を「SQLDB2」と命名変更したいのですが、 その方法を教えてください。よろしくお願いします。

  • postgreのDBデータを、丸ごとAccessに移行する方法って?

    Linuxサーバで稼動しているpostgre/DBのデータベースに入っているテーブルやそのデータを、 WindowsのAccessに取り込みたいのですが、何か方法はあるでしょうか?

  • SQL:全テーブルの現在のデータ数を知りたい。

    環境 DBサーバ : Linux + Oracle9i  クライアント : WindowsXP + Oracle10g の SQLPlus(w) 当方SQL初心者です。以下のSelectを行うSQL文がわかりません。(色々悪戦苦闘しましたが) どなたかご教授下さい。 条件指定する TABLESPACE_NAME に属する、全テーブルの現在のデータ数を、 各テーブルに comment on したコメントと一緒に表示するSQLを教えて下さい。 Select 結果のイメージは以下の感じです。 TABLESPACE_NAME TABLE_NAME Count(*)    Comments ------------------ -------------- ----------- -------------------- 条件としては、  (1) where TABLESPACE_NAME like 'xxxx%' です。 そして TABLESPACE_NAME が異なれば、同じ TABLE_NAME のテーブルがありますが (1)の条件に合致する全てのテーブルを Select したいということです。 すみませんが、お分かりの方、宜しくお願い致します。

  • Windows Server 2008 EXPRESSのテーブル別のユ

    Windows Server 2008 EXPRESSのテーブル別のユーザー権限設定方法を教えてください Windows Server 2008の初心者です。 Windows Server 2008 EXPRESS上でテーブル別、ユーザ別に SELECTやINSERT、UPDATEの権限設定はできるのでしょうか 設定方法が分からなくて困っています。

  • SQLでスキーマ名(所有者名)の修飾無しでテーブル参照したい

    select * from [テーブル名] で問い合わせをしたいんですが、 select * from [スキーマ名].[テーブル名] でなければエラーになってしまいます。 (「オブジェクト名 'テーブル名' は無効です。」といった、テーブルが無い旨のエラーが出ます。) 所有者(スキーマ名?)をdboに変更してするとテーブル名だけで参照できます。 例えば、テーブルの所有者を'test_user'に変更した場合、 test_userでログインしているにもかかわらず(クエリアナライザ)、修飾が無いと参照できません。 'test_user'はsystem administratorsロールに入れてあります。 SQLServerをインストールし直して DBを一から構築してもそうなります。 何か施さないといけないことがあるのでしょうか。 思い当たることがございましたら、ご教示頂ければと思います。 環境は SQL Server 2000 です。

  • SELECT時のパフォーマンス

    ケースA:[SELECT文]-[DB2].[ビュー]-[DB1].[テーブル] ケースB:[SELECT文]-[DB2].[テーブル] [テーブル]はどちらも同じ内容です。 ケースAは[DB1]にある[テーブル]を[DB2]の[ビュー]を通して見てます。 ケースBは[DB2]に[DB1]の[テーブル]と同じ物をコピーしています。 同じSELECT結果を表示するSQLで ケースAとケースBでパフォーマンス的に差が出るのでしょうか? 私が思うのはケースAの場合別DBにあるテーブルをビューを使って 見てる事によって、DBやテーブルへのアクセス権限等の 確認処理でパフォーマンスが低下すると思うのですが 推定実行プランやプロファイラで見てもよく分かりませんでした。 些細な事でも構いませんので、教えてくださいませ。

  • Windows2003ServerR2における自動再起動について

    Windows2003ServerR2を自動的(深夜など)に再起動してくれる方法を教えてください。日中に再起動がかけづらく非常に困っています。便利なツール等あれば助かります。Vectorでそれらしきものがあったのですが、2003Serverに対応しているのか不安で導入できません。

  • accessからSQL-Serverへの接続で

     ネットで調べても見つけ方が悪いせいか、参考になりそうなのが見つからなかったので、こちらでも情報を得ようと致しました。    Accessで、ADOを用いて、小さなシステムを作りましたが、フロントをAccessにして、DBをSQL-Serverで作りなおしてみようとしております。    Windows7 Pro 64bitのパソコンにaccess2010にて、当初作成しました。  そのパソコンに、SQL-Server2014 express をインストールしております。    元々、画面とDBを分けてAccessで作成しており、リンクテーブルでつなげております。  SQL-Serverとの接続においても、リンクテーブルでつなげて、同じPC内での正常稼働は確認ができましたが、そのPCをDBサーバーとして、別PCにAccessの画面を置いて、稼働させようとしましたが、エラーとなります。  そこで、接続設定及びコードの書き方を教えて下さい。    本来なら、サーバ機とサーバOSを購入してなのでしょうが、基幹システムでもない限り、購入費用はねん出してくれません。PC買うのにも渋り、HDDやCPU等の部品だけを購入して、私が直し、未だにXPを社員には使ってもらっているような中小企業であることをご理解ください。  環境イメージとして、 <サーバ> Windows7 Pro 64 bit SQL-Server 2014 express PC名:AAA DB名:YYY saアカウントで、パスはxxxx <クライアント> 現在Accessだけでも最大接続3名いるかいないかなので、とりあえず1台として Windows7 Pro 32bit Access2010ランタイム accdeのフロント部分 リンクテーブルでADOでサーバにつなぎに行きたい。 accdbでODBC接続設定をしたものをaccdeに変換したものを配布。  他PCからの接続には、ファイアウオールの設定等々も必要とのことで、それは施しました。  また、下記、コードを追加。 Dim cnnS As ADODB.Connection Dim recW As ADODB.Recordset Set cnnS = New ADODB.Connection Set recW = New ADODB.Recordset cnnS.Open "Provider=SQLOLE DB;" & _ "Data Source=AAA\SQLEXPRESS;" & _ "User ID=sa;" & _ "Password=xxxx;" & _ "Initial Catalog=YYY"  これで、サーバ内で実行すると、  「実行時エラー 3704  オブジェクトが閉じている場合は、操作は許可されません」  と表示され、リンクテーブルは生きているので、開けて、操作できてしまいます。    次に、accdeを他PCにて稼働させると、  「実行時エラーが発生したため、このアプリケーションの実行は中断されました。 アプリケーションを実行できません。システムはシャットダウンされました。」 と表示され、稼働しません。  どのようにすればよろしいのでしょうか?。

  • SQLのSELECT結果を縦から横に抽出する方法

    SQLのSELECT文について DB:MYSQL5.0 テーブルAとテーブルBを結合して テーブルAの項目と一緒(横)にテーブルBを抽出したいです。 どのようにすると実現できるのでしょうか? よろしくお願いします。 Aテーブル ID ITEM1 1 11111 2 22222 3 33333 4 44444 Bテーブル ITEM1 CNT KBN 11111 1    1 11111 2    2 11111 3    3 22222 4    2 22222 5    3 33333 6    3 出力結果 ITEM1 KBN1 KBN2 KBN3 11111  1   2   3 22222  0   4   5 33333  0   0   6 44444  0   0   0

  • 別テーブルからselectした値を他のテーブルにinsertしたいのですが、上手くできません

    以下のように行ったのですが、 全ての値が別テーブルにinsertされません。 $sql = "SELECT tbl_A.id, tbl_A.data FROM tbl_A "; $rst = mysql_query( $sql ); while ( $col = mysql_fetch_array( $rst ) ) { $sql = "INSERT INTO tbl_B (          date, id, data ) VALUES ( '" . date( 'Y-m-d' ) . "', '" . mysql_real_escape_string( $col['id'] ) . "', '" . mysql_real_escape_string( $col['data'] ) . "' )"; } このやり方では、テーブル内の1つの値しかinsertされません。 selectされた全ての値をinsertするにはどのようにしたら良いのでしょうか? よろしくお願いします。 DB:mysql5 SP:php5

    • ベストアンサー
    • MySQL