- ベストアンサー
PostgreSQLからODBCでSQLServe
SQLServerにテーブルがあります。 それをPostgreSQLからODBCで参照したいです。 ◆SQLServer(設定済) OS : Windows10 Pro DBMS : SQLServer 2022 Exp コンピュータ名 : SV01\DB01 DBユーザ名 : suser1 DBパスワード : suser1psw DB名 : SQLSVDB1 テーブル名 : sqlsvtb1 データソース名 : DS01 ◆postgreSQL(設定中) OS : AlmaLinux release 9.4 DBMS : psql (PostgreSQL) 13.16 コンピュータ名 : comp01 DBユーザ名 : puser1 DBパスワード : puser1psw DB名 : psqldb1 ■やる事 AlmaLinuxにODBC Driver for SQL Serverをインストール AlmaLinuxのODBCを設定 AlmaLinuxにODBC_FDWをインストール PostgreSQL上でCREATE EXTENSION odbc_fdw; ■わからない事 ODBC Driver for SQL Serverのデータソースの記述の仕方がわからない 下記の設定をどこにどんな風に書けばいいのか? コンピュータ名 : SV01\DB01 DBユーザ名 : suser1 DBパスワード : suser1psw DB名 : SQLSVDB1 データソース名 : DS01 ODBC_FDWのインストール方法
- みんなの回答 (1)
- 専門家の回答
関連するQ&A
- AlmaLinuxにODBC_FDWをインストール
■関連質問 PostgreSQLからODBCでSQLServe https://okwave.jp/qa/q10289246.html ■やりたい事の概要 既存のSQLServerのテーブルをAlmaLinux上のPostgreSQLからODBCでリンクする ■手順 AlmaLinuxにODBC Driver for SQL Serverをインストール AlmaLinuxのODBCを設定 AlmaLinuxにODBC_FDWをインストール PostgreSQL上でCREATE EXTENSION odbc_fdw; ■上手くいかない部分 AlmaLinuxにODBC_FDWをインストール 先の質問で一連の流れを確認できました。 しかし、AlmaLinuxにODBC_FDWをインストールする部分が上手くいきません。 ■AIの回答 ### 3. ODBC_FDWのインストール PostgreSQLでODBC Foreign Data Wrapperを使うために、`odbc_fdw`をインストールします。 ```bash # パッケージリポジトリを追加 sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # PostgreSQLデベロップメントツールをインストール sudo dnf install postgresql13-devel # odbc_fdwをソースからビルドするために必要なパッケージをインストール sudo dnf groupinstall "Development Tools" sudo dnf install git # ソースコードをクローンしてビルド git clone https://github.com/CartoDB/odbc_fdw cd odbc_fdw make sudo make install ``` ■やってみた結果 [root@PC01 ~]# cat /etc/almalinux-release AlmaLinux release 9.4 (Seafoam Ocelot) [root@PC01 ~]# psql --version psql (PostgreSQL) 13.16 [root@PC01 ~]# cd odbc_fdw [root@PC01 odbc_fdw]# pwd /root/odbc_fdw [root@PC01 odbc_fdw]# ls -l 合計 136 -rw-r--r--. 1 root root 1773 9月 9 09:34 CONTRIBUTING.md -rw-r--r--. 1 root root 1546 9月 9 09:34 HOWTO_RELEASE.md -rw-r--r--. 1 root root 1126 9月 9 09:34 LICENSE -rw-r--r--. 1 root root 1208 9月 9 09:34 Makefile -rw-r--r--. 1 root root 4461 9月 9 09:34 NEWS.md -rw-r--r--. 1 root root 7921 9月 9 09:34 README.md -rw-r--r--. 1 root root 199 9月 9 09:34 carto-package.json -rw-r--r--. 1 root root 502 9月 9 09:34 odbc_fdw--0.2.0--0.3.0.sql -rw-r--r--. 1 root root 502 9月 9 09:34 odbc_fdw--0.2.0--0.4.0.sql -rw-r--r--. 1 root root 507 9月 9 09:34 odbc_fdw--0.3.0--0.4.0.sql -rw-r--r--. 1 root root 494 9月 9 09:34 odbc_fdw--0.4.0--0.5.0.sql -rw-r--r--. 1 root root 494 9月 9 09:34 odbc_fdw--0.5.0--0.5.1.sql -rw-r--r--. 1 root root 494 9月 9 09:34 odbc_fdw--0.5.1--0.5.2.sql -rw-r--r--. 1 root root 1220 9月 9 09:34 odbc_fdw--0.5.2.sql -rw-r--r--. 1 root root 64396 9月 9 09:34 odbc_fdw.c -rw-r--r--. 1 root root 637 9月 9 09:34 odbc_fdw.control -rw-r--r--. 1 root root 3574 9月 9 09:34 odbc_fdw.vcxproj drwxr-xr-x. 8 root root 163 9月 9 09:34 test [root@PC01 odbc_fdw]# make Makefile:41: /usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk: そのようなファイルやディレクトリはありません make: *** ターゲット '/usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk' を make する ルールがありません. 中止.
- 受付中
- PostgreSQL
- PostgreSQL odbc_fdwデータ異常
odbc_fdw経由でoracleとdb2へ接続し、データを取得したところ、 テーブルのレコード件数は正しく表示されますが、 各レコードの項目のデータが正しく表示されません。 ※常に1項目目の値は'#'、2項目目以降はnull 何が問題なのでしょうか? 具体的な対処法はありますでしょうか? よろしくお願いいたします。 [参考情報] ・サーバ側のバージョンは以下の通り OS: Windows Server 2019 Standard PostgreSQL: postgresql-x64-16 ・postgreSQLサーバ側のデータベースの文字コードはUTF8 ※特に文字化けの問題ではなさそうな気はします。 ・OS側のODBCの定義は問題ありません。 別のツール(A5:SQL Mk-2)で正しく参照できています。 ・odbc_fdwのモジュールは以下の2つで試しましたが、結果は同じです 1. 以下のサイトのWindows用のバイナリバージョンで、CREATE EXTENSION odbc_fdw https://www.postgresonline.com/journal/index.php?/categories/85-odbc_fdw POSTGRESQL 16 64-BIT FOR WINDOWS FDWS 2. 下記サイトのソースコードをビルドした結果を、ALTER EXTENSION odbc_fdw UPDATE https://github.com/CartoDB/odbc_fdw ■参照結果: odbc_fdw(oracle) postgres=# select count(*) from odbc_zzzz_test_tbl4; count ------- 2 (1 row) postgres=# select * from odbc_zzzz_test_tbl4; data_id | name1 | name2 | update_d ---------+-------+-------+---------- # | | | # | | | (2 rows) ■参照結果: odbc_fdw(db2) postgres=# select count(*) from odbc_yyyy_CONNHEADER_SCMDWH_EVENT; count ------- 1263 (1 row) postgres=# select * from odbc_yyyy_CONNHEADER_SCMDWH_EVENT; appl_id | appl_name | client_protocol ---------+-----------+----------------- # | | # | | # | | # | | (以下省略) ■定義: odbc_fdw(oracle) CREATE SERVER odbc_zzzz FOREIGN DATA WRAPPER odbc_fdw OPTIONS (dsn 'PANDA-DEV', encoding 'SJIS'); CREATE USER MAPPING FOR postgres SERVER odbc_zzzz OPTIONS (odbc_UID 'xxxx', odbc_PWD 'xxxx'); CREATE FOREIGN TABLE odbc_zzzz_test_tbl4 ( DATA_ID text, NAME1 text, NAME2 text, UPDATE_D date ) SERVER odbc_zzzz OPTIONS ( sql_query 'select DATA_ID,NAME1,NAME2,UPDATE_D from ssss.test_tbl', sql_count 'select count(DATA_ID) from ssss.test_tbl' ); ■定義: odbc_fdw(db2) CREATE SERVER odbc_yyyy FOREIGN DATA WRAPPER odbc_fdw OPTIONS (dsn 'yyyy', encoding 'SJIS'); CREATE USER MAPPING FOR postgres SERVER odbc_yyyy OPTIONS (odbc_UID 'xxxx', odbc_PWD 'xxxx'); CREATE FOREIGN TABLE odbc_yyyy_CONNHEADER_SCMDWH_EVENT ( APPL_ID text, APPL_NAME text, CLIENT_PROTOCOL integer ) SERVER odbc_yyyy OPTIONS ( sql_query 'select APPL_ID,APPL_NAME,CLIENT_PROTOCOL from aaaa.bbbb_tbl', sql_count 'select count(APPL_ID) from aaaa.bbbb_tbl' );
- 締切済み
- PostgreSQL
- Access2000/Windows2000からODBCでPostgreSQLに接続、その他。
環境は Turbolinux8.0 PostgreSQL 7.2.2-3 PostgreSQL ODBC Driver 07.01.0006 日本語版 2001/07/13 版 です。 ODBCデータソースアドミニストレータの設定ですが、ユーザー名とパスワードの関係はどうなっているのでしょうか? ここでの指示されているものに何を使っていいのかわかりません。ユーザー名がPostgresのDBのオーナー名だとした場合、そのユーザーはWindows側にも登録されていなければならないのでしょうか? それと、/home/postgres/.bashrc に対して、次のように設定するように書かれている場合が多いのですが、Turbolinux8の場合、/home/postgresが存在しません。この場合、この扱いはどうなるのでしょうか? /home/postgres/.bashrc PATH="$PATH":/usr/local/pgsql/bin export PGDIR=/usr/local/pgsql export PGLIB=$PGDIR/lib export PGDATA=$PGDIR/data export MANPATH="$MANPATH":$PGDIR/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB" 現状は、PostgresはApache経由でもODBC経由でも動いてはいるのですが、参考書とかWEBとかの内容と違っている感じで、これでいいのか悪いのかそこらあたりがしっくりしません。 よろしくお願いします。
- ベストアンサー
- PostgreSQL
- ODBCからSQLServerに接続するには?
SQLドシロウトです。力をお貸しください。 SQLを勉強しようと本を購入しました。実際パソコンで入力しながら勉強しようと思い、本の説明にしたがって、 「コントロールパネル」の「ODBCデータベース(32ビット)」から「追加」で新しいデータソース名とユーザが入力するSQLServer用のログインIDを入力してSQLServerへつなげようとしますが、「指定されたSQLServerが見つかりません」とエラーになります。いろいろ調べてみましたが分からず、ただ私の考えになかった知らない事があるようだと感じました。 そこで、教えてください。 Win98でJava環境とイクリプスとトムキャットが入ってます。「コントロールパネル」の「ODBCデータベース(32ビット)」の「システムDSN」には何も表示されません。 ・同パソコン内にSQLサーバーを設定できるのか。 ・SQLServerというソフトを別途インストールしないとODBCから設定できないのか。もしそうならバージョンはどれか。 ・SQLServerを設定後、オラクル設定はできるのか。 ●ODBCからSQLServerへ接続するのに必要な作業を教えてください。よろしくお願いします。
- ベストアンサー
- その他(データベース)
- クライアントのODBCがつながらない
サーバーWindows2000+postgreSQL8.2.4でクライアントWindowsXp+postgreSQL ODBC ANSI 8.2.5 サーバーのファイルDSNは設定できましたが、クライアントが「指定したファイルデーターソースパレメータを使用して接続することはできません・・」でつながりません。 サーバー:Server1 データベース名:postgres ユーザー名:postgres パスワード:abcde 何か、間違っていますか?サーバーはネットワークから見える状態です。助けてください!
- 締切済み
- PostgreSQL
- PostgreSQLと、AccessをODBC接続
PostgreSQL初心者です。 AccessからPostgreSQLに移行しようと思い、ODBCで接続しようとしたのですが、エラーが発生して進めません! そして、いろいろ試してみたのですが、同じエラーが発生してしまいます。 設定、エラー内容は、下記になります。 エラー内容 「ODBC--呼び出しが失敗しました。 Could not connect to the server; Could not resolve hostname.(#101)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(#0)」 設定 データソース(ODBC)→システムDSN→PostgreSQL Driver Setup Database Server dbserver User Name localhost Description Port 5432 以上、宜しくお願い致します。 OS:WindowsXP Professional Version 2002 Service Pack3 PostgreSQL 9.1 Version 1.14.3 Access XP(2002) になります。
- ベストアンサー
- PostgreSQL
- PostgreSQLサーバー構築について
おはようございます。PostgreSQLを使ったクライアントサーバーシステムの構築について 質問です。 PC(A)にPostgreSQLをサイレントインストールを行って、DBも作成し、正常にDBが起動している 状態とします。 このとき、PC(B)にODBCドライバをインストールし、ODBC接続の設定を自動で作成する部分 を作成しようと考えています。 1台のPCに入れたときにはホスト名をlocalhostとすることで問題はありませんでしたが、 ほかのマシンにインストールしたとき、どのサーバーで(どのIPで?)PosegreSQLが動いているのか クライアント側から取得する方法がありましたら、教えていただきたいと思います。 OSについてはどちらもWindows系OSを考えております。 よろしくお願いします。
- 締切済み
- PostgreSQL
- ODBC?エラーについて
皆様すいません。私は、通常は経理業務を行っているので olacleは名前しか聞いた事がない為 どこへ聞いたらいいのかわからず皆様にお伺いすれば なにかわかるかと思い投稿させて頂きます。 社内でMicrosoftのAccess から毎週一回データをとってたのですが パソコンが壊れてしまったので全てのデータがとんでしまいました。 Accessからいつもデータを開いていた箇所をいつも通り押した所 ODBC 接続エラーというのが出て 接続が出来ませんでした。 上司に言った所、OLACLEから直接とってきてるから OLACLEのODBCをいれて といわれ、CDを渡されました。 OLACLEを一式インストールし、ウィザードはわからなかったので 何も設定せず閉じました。 その後、アクセスのヘルプをみたら、コントロールパネルの ODBCデータソースを設定してくれ と書いてあったので ODBCデータソースのユーザDNS システムDNSという所に 教えてもらった ユーザ名とパスワードを入れました。データソース名はよくわからなか ったので 適当にいれました。 その後、再度アクセスをクリックしたら ユーザ名とパスワードを 聞かれる画面が出てくるようになったのですが やっぱり ODBC 接続が失敗しました。というエラーがでます。 色々な検索をしてみたら SQL PLUSで接続してみて と書いて あったので ユーザ名とパスワードをいれてテストしてみた所 やっぱり接続できません。 上司はその後すぐに出張に行ってしまい つかまらないのですが データは今日の8時までに落とさなくてはいけないので どうか お力を貸して頂ければ幸いです。 すいません 宜しくお願いします。
- 締切済み
- その他(データベース)
- ODBC接続に関して
教えて下さい。 Oracle Database 11g Express Edition をインストールし、そこにODBC経由で 接続しようと考えていますが、どうも思ったように接続ができません。 ODBCは、 1.[スタート]→[コントロールパネル]→[管理ツール]→[データ ソース (ODBC)]を選択。 2.ODBCデータソースアドミニストレータのユーザDSNタブの追加ボタンを選択。 3.データソースの新規作成から「Oracle in XE」を選択。 して設定してあります。 Oracle側にユーザとして、"ABC"というユーザ(ワークスペース管理者)を作成、そのユーザで、 Oracle ODBC Driver ConfigurationのUserIDを追加しましたが、接続できません。 Unable to connect SQLState=28000 [Oracle][ODBC][Ora]ORA-01017 ; invalid username/password ;logon denied というエラーが表示されます。 但し、SYSTEMというユーザでは接続できます。 ユーザ名/パスワードは間違っていませんが、何が問題でしょうか??? そもそもの考え方が間違っているでしょうか、、、 教えて下さい。 よろしくお願いします。
- 締切済み
- Oracle
- SQLSERVER2005 ODBCでの接続について
SQLSERVER2005 ODBCでの接続について Access2003からODBCで接続して利用しております。 今までリンクテーブルでODBC接続する場合、各クライアントPCにODBCのデータソースを設定しておりましたが、各クライアントにODBCのデータソースを登録しなくても、ODBCでリンクさせることができているものがありました。回りに聞ける人がいないので質問させていただきました。 1.SQLServer側でなにか特別な設定をしているのでしょうか?どうやって実現しているのか知りたいです。 2.SQLServer2000で同じことができますでしょうか? 教えていただければ幸いです。 情報が不足している場合はご指摘ください。 宜しくお願い致します。
- ベストアンサー
- SQL Server