PostgreSQL
- 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
- t20240712
- 回答数1
- 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のインストール方法
- ベストアンサー
- PostgreSQL
- t20240712
- 回答数1
- 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
- toyo_365
- 回答数1
- NULLを無視してgroup byは可能でしょうか
PostgreSQLです。 cd、nm、data1、data2 11、AA、xxxx、null 11、AA、null、zzzz 上記のようなテーブルをcd、nmでグループ化し以下のように取得したいです。 11、AA、xxxx、zzzz
- ベストアンサー
- PostgreSQL
- haya6848
- 回答数1
- PostgreSQLのinitdbの利用の仕方
PostgreSQLでカラム名の上限を拡張するため「pg_config_manual.h」の「NAMEDATALEN」を63→513に変更しました。 ただこれだけでは反映されず、ヘッダーファイル内のコメントに「initdbを実行しなければなりません。」といったコメントがあったので実行しようとしました。しかし、その使い方がよく分かりません。 新しいフォルダを指定して、実施するのは良いのですが、そうすると次からはそのディレクトリにデータベースが構築されていくのでしょうか? 実際に上記のカラム名の上限が拡張された新しいデータベースの作成方法と、そのデータベースの操作方法を教えていただきたいです。 ■実行環境 Windows10、 コマンドプロンプト使用、 Postgresql 15
- 締切済み
- PostgreSQL
- bitamin123456
- 回答数1
- データベース名postgresは使わない方がいい?
データベース名postgresは使わない方がいい? PostgreSqlでデータベースを作成する際にデフォルトのデータベースやロールとしてpostgresが存在しますが、セキュリティの事を考えると、これは使用しない方が良いですか? postgres(データベース)とpostgres(ロール、ユーザー)でやって問題ないですか? database1(仮名)とrole1(仮名)でやった方がいいですか? もちろんpostgresユーザーのパスワードはしっかりしたものを設定します。
- 締切済み
- PostgreSQL
- webuser
- 回答数4
- postgreSQL EUC-JPで運用 copy
色々試してみましたがうまく行かず質問します。今までpostgreSQL9.6で標準のUTF8で使用していましたが今回postgreSQL12にして、データベースをEUC-JPで作成しました。postgresql.confの中のclient_encodeをSJISの定義もしました。 利用環境はtomcatでアプリを実行しており、その機能のひとつにpostgreSQLのファンクションを実行し、データをcsv出力しています(copy to)しかし、保存されたcsvはUTF8で出力されてしまいます。PSQLで直接copy toを実行するとSJISで出力されます。該当のファンクションで、copy toでencodingをsjis指定すると、tomcat経由でもsjisで出力されるのは確認しました。どこの設定でtomcatからのcopy toがデフォルトがUTF8になっているのでしょうか?データベースとの接続はJDBC接続でデータソースを使用しています。 どなたか教えていただけないでしょうか。宜しくお願いします。
- 締切済み
- PostgreSQL
- posgrepanda
- 回答数2
- 個人でデータベースを作成・無料公開する方法
個人でデータベースを作成・無料公開する方法 個人的な趣味で調べている文献の情報が相当な量になったので、 個人でデータベースを作りたいと思っています(題名等の書誌情報と主題・キーワードを示す程度のものなので、著作権法には抵触しません)。 せっかくなのでオンラインで無料公開して誰でも閲覧・検索できるデータベースにしたいのですが、 どんなソフトやサービスを使えばいいのか全く方法がわかりません。ご存じの方がいらっしゃったら教えていただけないでしょうか。 プログラミングは全くわからないのですが、解説書があったりローコードであるならば勉強する意志はあります。 まずは無料ソフトなどで練習しようかとも思うのですが、それもどれを選んだらいいか困っています。 場合によってはプロに発注することも視野にはありますが、まずは簡易的なものを自分で作ってみて、自分が求める仕様を確認してみたいと思っています。 条件は ①個人使用可 ②web公開可(無料公開) ③なるべく低コスト 希望する仕様は、文献検索用なので A 著者、題名等の書誌情報を検索できる B 文献テーマやキーワードを複数登録・検索できる 程度の簡易なものです。 よろしくお願いします。(カテゴリが合っていなかったらすみません)
- 締切済み
- PostgreSQL
- o4ete9da314649
- 回答数3
- Left outer join とかのLeft
Left outer join とright outer join ですが、解説などをみると、左右に表が描かれてあって、線を引いたりして結合していくのですが、 何をもって左とか右とかいうのでしょうか? テーブル1が左で、テーブル2が右みたいな感じで解説されるのですが、先に出てきた1も、あとに出てきた2も、単に出てきた順番であり、記号と思われます。1と2を入れ替えたら同じことです。Left outer join Table1 もRight outer join Table2 も同じことのように思われます。私はなにか勘違いしているのでしょうか?
- ベストアンサー
- PostgreSQL
- spongetak
- 回答数1
- GENERATE_SERIESで二次元を自動生成
PostgreSQLのGENERATE_SERIESで二次元のテーブルを自動生成したいです。 期待する出力は、 x | y --+-- 1 | 1 2 | 1 3 | 1 1 | 2 2 | 2 3 | 2 1 | 3 2 | 3 3 | 3 1 | 4 2 | 4 3 | 4 です。 自分で思い付いたのは SELECT GENERATE_SERIES(1, 3) AS x, GENERATE_SERIES(1, 4) AS y; ですが、これはもちろん、 x | y --+-- 1 | 1 2 | 2 3 | 3 | 4 を返します…。 ループが必要なんでしょうか…。 例を検索しても見つかりません…。 ストアドプロシージャを使っても構いませんので、 どうかよろしくお願いします。
- ベストアンサー
- PostgreSQL
- sucker
- 回答数1
- 測定結果が決められた範囲内か判定するSQL文
決められた範囲内に測定結果が入っているかを判定するSQL文(またはストアドプロシージャ)を PostgreSQL 14.0を使って作ろうとしていますが、正しい結果が得られません。 具体的には、ケーブル・テーブルとスペック・テーブルで一致するテスト項目同士(例えば、'Test_1'同士)だけを比較したいのですが、他のテスト項目も引っ掛けてしまいます。 あと、下記のwhere test_item = 'Test_1', 'Test_2', 'Test_3'の部分を select test_item from cable; から一つ一つ取り出してループで回して代入し、最終的には id | test_item | test ----+-----------+------ 1 | Test_1 | 1.5 2 | Test_1 | 1.8 2 | Test_2 | 2.5 という、まとまった出力を得たいのですが、その方法を教えていただけないでしょうか? 自作のテーブルとSQL文は以下になります: create table cable( id integer default 0 not null ,test_item varchar(30) not null ,test numeric(3, 1) ,primary key (id, test_item) ); insert into cable values(1, 'Test_1', 1.5); insert into cable values(1, 'Test_2', 4.5); insert into cable values(1, 'Test_3', 2.5); insert into cable values(2, 'Test_1', 1.8); insert into cable values(2, 'Test_2', 2.5); insert into cable values(3, 'Test_3', 2.5); create table spec( test_item varchar(30) not null , lower_spec numeric(3, 1) , upper_spec numeric(3, 1) , primary key(test_item) ); insert into spec values('Test_1', 1.0, 2.0); insert into spec values('Test_2', 2.0, 3.0); insert into spec values('Test_3', 3.0, 4.0); postgres=# select * from cable c WHERE c.test_item = test_item and test < (select upper_spec from spec where test_item = 'Test_1') and test > (select lower_spec from spec where test_item = 'Test_1'); id | test_item | test ----+-----------+------ 1 | Test_1 | 1.5 2 | Test_1 | 1.8 (2 行) postgres=# select * from cable c WHERE c.test_item = test_item and test < (select upper_spec from spec where test_item = 'Test_2') and test > (select lower_spec from spec where test_item = 'Test_2'); id | test_item | test ----+-----------+------ 1 | Test_3 | 2.5 ←'Test_3'なので引っ掛けたくない 2 | Test_2 | 2.5 3 | Test_3 | 2.5 ←'Test_3'なので引っ掛けたくない (3 行) postgres=# select * from cable c WHERE c.test_item = test_item and test < (select upper_spec from spec where test_item = 'Test_3') and test > (select lower_spec from spec where test_item = 'Test_3'); id | test_item | test ----+-----------+------ (0 行) 必要であれば補足します。 では、よろしくお願いします。
- ベストアンサー
- PostgreSQL
- sucker
- 回答数1
- 新規にデータベースを作成するものですか
今回初めて、PostgreSQLを使ったシステム開発をする事となりました。先週から少し触り始めて多少わかってきたつもりですが、以下の点判断できず迷っています。アドバイスお願いしたいです。 デフォルトで存在する「postgres」データベースをそのまま使っていいものでしょうか?それとも、別データベースを作成したほうが良いものなのでしょうか。 デフォルトで存在するDBはサンドボックス的な意味合いで、実際には別途作成すべきものなのではないかと勝手に予想し、新規にユーザ作成した後、新規DBの作成が良いのではとも思っていたのですが、同僚から、「なんでデフォルトのものではだめなの?」と問われ返答に困ってしまいました。みなさんご意見お聞かせください。
- ベストアンサー
- PostgreSQL
- baunce
- 回答数1
- PostgreSQLでログインIDとパスワードでロ
PostgreSQLでログインIDとパスワードでログインするにはどうしたらいいですか?
- ベストアンサー
- PostgreSQL
- akio123
- 回答数1
- CentOS7,PosgrSQL9.2で -bas
CentOS7,PosgrSQL9.2で -bash-4.2$ su - postgres パスワード: su: 認証失敗 となってしまいました。 どうしたらいいですか?
- ベストアンサー
- PostgreSQL
- akio123
- 回答数1
- ポスグレで
ポスグレで postgresql-setup initdb とデータベース初期化すると Data directory is not empty! とエラーメッセージが表示されます。なぜでしょうか?
- ベストアンサー
- PostgreSQL
- akio123
- 回答数1
- UNIXでPostgreSQLを起動したり、テーブ
UNIXでPostgreSQLを起動したり、テーブル作ったりするにはどうしたらいいですか?
- ベストアンサー
- PostgreSQL
- akio123
- 回答数1