『PostgreSQL』に関する質問・疑問一覧

次へ  ]
1171件中 81~100件目
  • tar.gzファイルのリストアについて

    Postgres初心者です。 教えてください。 pg_dumpコマンドでdump拡張しのバックアップファイルを生成し、 tarコマンドで****.tar.gzファイルに圧縮しました。 このtar.gzのファイルを直接リストアするコマンドがあれば 教えていただけないでしょうか? -bash-3.2$pg_restore -U postgres -d (データベース名) < ****.tar.gz と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [アーカイバ] 入力ファイルが有効なアーカイブではないようです。 -bash-3.2$gunzip -C ****.tar.gz | pg_restore -d (データベース名) と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [tarアーカイバ] tarアーカイブ内でファイルtoc.dat用のファイルヘッダがありませんでした よろしくお願い致します。

    2013/07/18 13:15
  • PostgreSQLのUPDATE文につきまして

    お世話になります。 phpPgAdminで更新作業をしていまして 一件一項目の更新で update "store_table" set "tenpo_add" = '東京都1-1-1' where "kaiin_no" = '123456'; とした場合はうまく更新でできたのですが、以下のように複数項目の更新が文法エラーになります。 update "store_table" set "tenpo_post1","tenpo_post2","tenpo_add" = '123','4321','東京都1-1-1' where "kaiin_no" = '123456'; このようにした場合、  "," ←この部分が文法上おかしいとのエラーが出ました。 どのように記載すれば良いかご指導いただければ幸いでございます。。

    2013/07/02 11:48
  • Oracle→Postgresql 移行について

    あるWebアプリのDBをOracleからPostgresqlへ移行中なのですが、 トランザクション処理でエラーが発生します。 エラーコード:25006 メッセージ:リードオンリーのトランザクションでは UPDATE を実行できません Oracleでは正常にトランザクションが処理されてPostgresqlではできないということがあるのでしょうか。 類似の問題に経験のある方はご教授をお願い致します。 ちなみに、OracleとPostgresqlのバージョンは下記の通りです。 Oracle:11g Postgresql:9.2

    2013/06/26 17:12
  • CentOS6にpgadmin3をインストール

    CentOS 6.4をインストールし、標準装備のpostgresql 8.4をインストールしました。 この環境にpgadmin3をインストールしたいのですが、最も簡単な方法を教えて下さい。 ネットで調べると、「ソフトウェアの追加/削除」から「pgadmin3」を検索し、ヒットしたモジュールにチェックを付ければインストールが完了するような事を書いていましたが、「ソフトウェアの追加/削除」で検索してもモジュールはヒットしません。 http://www.linuxmania.jp/postgresql_01.html 例ではCentOS 5でしたので、念のためにCentOS 5で試しましたが、やはり出来ません。 yumでインストールできるような事を書いているのもありましたが、 yum list 上にpgadmin3は見当たりません。 うーん、という感じです。

    2013/06/18 11:24
  • PostgreSQLのレプリケーション

    PostgreSQL(9.1.4)のストリーミング・レプリケーションについて 現在、半年ほどRails+PostgreSQL(9.1.4)で構成されたシステムを運用しております。 DBサーバ(PostgreSQL 9.1.4)を2台使用し、PostgreSQLのストリーミング・レプリケーション機能を用いて、サーバ間でのデータ同期処理を実現させておりました。 しかし、本日より、このストリーミング・レプリケーション機能が正常に動作せず、データの同期処理が行われない状態となってしまいました。 原因の調査方法が、分からず、どのようなログを見て、どのように対処すべきか、ご存知の方がいらっしゃいましたら、教えて頂けないでしょうか? 何卒よろしくお願い申し上げます。

    2013/06/17 15:56
  • 文字化けしてしまって困っています

    postgresのデータベースから日本語の入った列の取得が上手くできずに困っています。 どうすればよいのでしょうか。。。 【DB】 postgres:9.1.1 perl: v5.10.1 databaseの文字コード:UTF-8 【クライアント】 postgres:8.4.0 perl:v5.8.8 文字コード:ECU-JP このような環境で、クライアントで 県名テーブルから県名を取得する以下のようなperlを実行した結果、 OUT.csvの県名列が文字化けしてしまったため (1)のように修正したのですがエラーとなってしまいます。 convertの記述の仕方が悪いのでしょうか? DBD::Pg::st execute failed: ERROR: function convert(character varying, unknown, unknown) does not exist at character 19 (Test.pl) #!/usr/local/bin/perl use DBI; $query = <<EOF; SELECT KEN_ID, KEN_NAME  ←修正前 convert(KEN_NAME,'UTF-8','EUC-JP')←(1) FROM KEN_MASTER EOF $dbi = DBI->connect("dbi:Pg:dbname=datbase;host=DATA_SV","hogeUser","hogePass"); $dsi = $dbi->prepare($query); $dsi->execute(); open(OUT, "> /OUT.csv"); while ($shr = $dsi->fetchrow_arrayref) { print OUT join(",", @$shr), "\n"; } close(OUT); $dsi->finish(); $dbi->disconnect(); exit();

    2013/06/15 10:43
  • 特定カラムの値を変更したいのですが

    お世話になります。DB初心者です。 現在 、PostgreSQLのphpPgAdminを使っていまして 以下のようなDBがあり kaiin_no  t_name   t_chiket -------+-------+---------- 1001    太郎     なし 1002    次郎     なし 1003    三郎     なし 1004    四朗     あり 1005    五朗     あり 以下のようなSQLで目的のデータを表示できるのは解ったのですが SELECT "kaiin_no","t_name","t_chiket" FROM "public"."store_table" WHERE "kaiin_no" IN ('1001','1002','1003'); kaiin_no '1001','1002','1003' の t_chiket を 「なし」 から 「あり」 に変更すする方法をご教授いただけますでしょうか? お手数をおかけしますがよろしくお願いいたします。

    2013/05/14 22:53
  • PostgreSQLのselect

    select first_nm,last_nm,addr,blood from prof のように複数の列名を指定して結果を取得する方法で 列名ではなく「n番目の列」というような要素番号のようなもので指定して 取得する方法はないでしょうか select [1番目の列],[2番目の列],[3番目の列],[4番目の列] from prof というような構文です。

    2013/05/09 11:25
  • テーブル単位のリストア

    pg_dumpall > [出力ファイル名] で作成したバックアップからテーブル単位でリストアする方法はないのでしょうか? pg_dumpallのマニュアルを読むと、リストアはpsqlで行うことになっていますが、psqlのマニュアルには テーブル単位で取り出すオプションなどはないようです。 また:pg_dumpallで作成したファイルを: pg_restore -l [入力ファイル名] の入力ファイルにすると、"pg_restore: [archiver] input file does not appear to be a valid archive" エラーが発生します。 webでも調べてみたのですが、該当するページが見あたりません。 お手数ですがご教授ください。

    2013/05/07 11:48
  • JDBCが見つからないとメッセージが出る

    PostgreSQLをバージョン8.2から9.2にUPし、Tomcatをバージョン5から7にUPしました。 そのほか、OSはWindows7でローカルシステムを構築中です。 実行すると、HTTPステータス500javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory] とエラーが出ます。 以下の環境設定の間違いと思われますが、どこを直せばよいかわかりません。 よろしくご教授ください。 PostgreSQLは、C:\Program Files\postgresql9.2に配置しました。 Tomcatは、C:\Tomcat7に配置しました。 システムはC:\Tomcat7\webapps\test1に配置しました。 JDBCドライバは、postgresql-9.1-901.jdbc3.jar と postgresql-9.1-901.jdbc4.jar を C:\Tomcat7\libnにコピー&ペーストしました。 接続の定義は、C:\Tomcat7\conf\catalina\localhost に test1.xmlファイルを作りました。 以下がその記述です。 <?xml version='1.0' encoding='utf-8'?> <Context path="/test1" reloadable="true" docBase="C:\Tomcat7\webapps\test1" workDir="C:\Tomcat7\work" > <Resource name="jdbc/RDBMS" auth="container" type="javax.sql.DataSource" debug="1" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="org.postgresql.Driver" username="postgres" password="postgres" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:postgresql://localhost:5432/LocalDB" removeAbandoned="true" removeAbandonedTimeout="300" /> </Context>

    2013/05/06 18:31
  • postgresql のupper関数について

    いつもお世話になっております。 標題についてご教授下さい。 DBからある項目をupper関数を使って変換しているのですが、 変換されません。 UPPERは文字列などを大文字に変換する認識なのですが、 わかりません。 [table A] key1 Test key2 test SELECT upper(key1), upper(key2) from A 結果 key1   key2 Test  TEST 全角の英字が変換されません。 そもそも全角はtranslateしないとだめでしょうか。 お手数ですが、宜しくお願いします。  

    2013/04/24 18:45
  • PostgreSQL バッチでバックアップ

    PostgreSQL 8.4に関する質問です。 サーバ:Linux、PostgreSQL 8.4 クライアント:Windows 7 Windowsマシンから、バッチファイルでサーバ上のPostgresのバックアップを取りたいのですが、 以下のコマンドをバッチファイルに記述して実行すると、 「パスワード:」というプロンプトが出て処理が止まってしまいます。 pg_dump.exe -h [DBサーバのIP] -U [ユーザ名] -F custom -b -v -f "C:\test.backup" "test" パスワードを入れればバックアップはできるのですが、 パスワードの入力まで完全自動化するにはどうすればいいでしょうか。 Linux上のPostgresはSSL接続のみ許可するようになっています。 Windowsのタスクで毎日バックアップする運用を想定しています。

    2013/04/08 18:47
  • Windows に Postgres 旧バージョン

    Windowsに、PostgreSQL 旧バージョン等をインストールしたいのですが、 以下のバージョンをインストールする事は可能でしょうか。 PostgreSQL 7.3.6 Apache 2.2.23 PHP 5.2.17 Windows は、できれば7(64bit)、駄目ならXP(32bit)に入れたいです。 Postgresを自分で探してみたのですが、Linuxバージョンしか見つける事ができませんでした。

    2013/04/08 16:03
  • COPYコマンドによるTEXT取り込みについて

    PostgreSQLバージョン 9 OS:RedHat 現在Oracleからの移行でPostgreSQLにてTEXT取り込み処理を作成しています。 OracleではSQLLoaderを使用して取り込んでいましたが、 PostgreSQLではCOPYコマンドを使用すれば取り込みできるところまで調べました。 しかし、行末に区切文字があるためうまく取り込みできません。 【コマンド】 \copy hoge from 'hoge.txt' delimiters '|'; 【行末に区切文字がある場合NG】 AAA|BBB|CCC| ERROR: extra data after last expected column CONTEXT: COPY hoge, line 1: "AAA|BBB|CCC|" 【行末に区切文字がない場合OK】 AAA|BBB|CCC SQLLoaderでは行末の区切文字があっても取り込めましたが COPYコマンドでは取り込めないようです。 回避策はないのでしょうか? (取引先からのTEXTなので相談はして見ますがレイアウトの変更は難しいかもしれません。) 回避策がない場合、行末の区切文字を削除する方法はありますでしょうか? 行末だけの区切文字を削除する方法が分かりません。 (テキストは固定長でないため、桁数を指定した削除ができません) 行末区切文字削除の方法だけでも良いのでお願いします。

    2013/04/07 13:14
  • pl/pgsqlで再帰呼び出しは可能でしょうか。

    pl/pgsqlで再帰呼び出しは可能でしょうか。 PostgreSQLのバージョンは9.2.3です。 作成しているファンクションは正方形の中心座標を求めてInsertするものです。 指定した回数だけ、再帰的に正方形を4分割にどんどん細分化していき、 それぞれの正方形の中心座標をInsertします。 4分割にした正方形をそれぞれ以下のように番号を振って説明します。  左上・・・(1)  右上・・・(2)  左下・・・(3)  右下・・・(4) 元の正方形を求めた後、(1)→(2)→(3)→(4)の順に再帰的にファンクションを呼び出します。 パラメータを「3回」以上にした場合は、(1)についてもまた4分割していきます。 ここで、パラメータを「1回」とした場合は、元の正方形の中心座標は当然Insertできます。 パラメータを「2回」とした場合、(1)の正方形の中心座標も求まりますが、 (1)の正方形については再帰の最終処理のため、Insert後にRETURNすることで エラーとなっているのか、1つ目の正方形のレコードも(2)の正方形のレコードも Insertされていません。 さらにはその「RETURN句」が元のファンクションすら「終了」させているようで、 (2)、(3)、(4)の正方形の処理が行われません。 このように再帰呼び出しをしたいと思っても、再帰中の処理を終わらせ、 呼び出し元に戻らせるはずのRETURN句が、一番最初のファンクションの「終了」と 理解されてしまい、pl/pgsqlでは再帰呼び出しは実現できないのでしょうか。 ファンクションのイメージは以下の通りです。 CREATE OR REPLACE FUNCTION Insert_squre( IN kaisuu INT, --再帰的に呼び出す回数 IN count INT, --再帰回数をカウント IN X1 INT, --正方形の左上の頂点のX座標 IN Y1 INT, --正方形の左上の頂点のY座標 IN X2 INT, --正方形の右下の頂点のX座標 IN Y2 INT --正方形の右下の頂点のY座標 ) RETURNS void AS $$ DECLARE /* 変数定義 */ ・・・・・ BEGIN /* 中心座標を求める */ ・・・・・ /* 中心座標をInsert */ ・・・・・ /* kaisuu=countならばRETURN */ ・・・・・ /* (1)の正方形について再帰処理 */ select Insert_squre( IN kaisuu INT, --再帰的に呼び出す回数 IN count+1 INT, --再帰回数をカウント IN X1 INT, --正方形の左上の頂点のX座標 IN Y1 INT, --正方形の左上の頂点のY座標 IN X3 INT, --正方形の右下の頂点のX座標 IN Y3 INT --正方形の右下の頂点のY座標 ); /* (2)の正方形について再帰処理 */ ・・・・・ /* (3)の正方形について再帰処理 */ ・・・・・ /* (4)の正方形について再帰処理 */ ・・・・・ RETURN; END; $$ LANGUAGE PLpgSQL;

    2013/03/31 01:23
  • postgreSQL9.2 イベントトリガ

    ポスグレでイベントトリガを使いinsert時に任意の関数を呼び出し処理を行いたいのですが 最後にinsertされた(正確にはそのイベントが発生したときにinsertされた)レコードの データを関数内で使うやり方がわかりません。 そういった関数みたいのがあるのでしょうか。 ご存知の方、ご教示いただけると助かります。

    2013/03/28 01:14
  • PostgreSQLのphpPgAdminを使って

    お世話になります。 PostgreSQL8.4.8のphpPgAdmin3.5.3を使ってデータを削除する際に 先ずデータをSELECT で表示させて確認後、 SQL編集 で SELECTを DELETE に書き換えて実行しましたが以下エラーが出ます ≪一覧確認用≫一覧表示はできました。 SELECT "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234',2222'); ≪削除用≫SELECT  → DELETEに変更 → 実行 → 以下エラー DELETE "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234',2222'); ≪エラー内容≫ ERROR: syntax error at or near "," LINE 1: SELECT COUNT(*) AS total FROM (DELETE "kaiin_no","tenpo_no",... ^ 文: SELECT COUNT(*) AS total FROM (DELETE "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234','2222')) AS sub 文法エラーのようなのですが 一覧が出来ているのに なぜ削除が出来ないのか 初心者で恐縮ですが ご教示頂ければ幸いです。

    2013/03/25 15:14
  • pl/pgsqlで変数の扱い

    pl/pgsqlで変数が文字列として扱われてしまうのですがどうすればいいのでしょうか。 具体的には以下のような感じです。 CREATE OR REPLACE FUNCTION test_func() RETURNS VOID AS $$ DECLARE test_val TEXT ; ofs_num INTEGER := 0; lmt_num INTEGER := 0; t_name TEXT := 'schema1.table1'; BEGIN SELECT INTO ret_val * FROM t_name OFFSET ofs_num LIMIT lmt_num; END; $$ LANGUAGE plpgsql; 上記のofs_numやlmt_numは変数として認識してくれるのですが FROMに続く「t_name」が変数ではなくそのままの文字列として認識されてしまいます。 t_nameを変数として認識させる方法はありませんでしょうか。 教えていただけると助かりますm(_)m

    2013/03/18 23:07
  • 行ロックについて

    Web上のボタンをクリックしたとき 該当データを1件取得しそのデータにフラグをたてる ⇒フラグを管理するテーブルに投入する という処理をしており該当データは一人につき1件取得したいです。 BEGIN SELECT * FROM TABLE1 WHERE day = 今日 ORDER BY time LIMIT 1 FOR UPDATE UPDATE TABLE1 SET flag = 1 WHERE id = $id INSERT INTO TABLE2 (time , flag ) VALUES ($time , 1); COMMIT 現在の問題は同時にボタンを押したとき SELECTで取得したデータが重複してしまうことがあることです。 BEGINからCOMMITまでを一連の流れとし、 その間はSELECTもできないようにしたいです。 ドキュメントに FOR UPDATEだとUPDATE、DELETE、SELECT FOR UPDATEは拒否されます とありますのでSELECTは通ると解釈するとFOR UPDATEでは実現できないのでしょうか? テーブルのロックではなく行のロックで実現したいのですが どなたかご教授お願い致します。 ※バージョンはPostgreSQL 8.1.18 です。

    2012/12/29 18:22
  • SQLで同じフィールドを2つ取りだしたい

    以下のテーブルからCSVを出力する際、 ID | 名称 | コード1 | コード2 1 |  A  |  111  |  444 2 |  B  |  222  |  555 3 |  C  |  333  |  666 「ID/名称/コード1コード2」のように取りだす場合のSQL文は SELECT ID, 名称, コード1 || コード1 FROM テーブル名 となると思いますがこれを、「ID/名称コード1/名称コード2」のように同じフィールドを同じ行に2回登場させたい場合はどうすれば宜しいでしょうか。 SELECT ID, 名称 || コード1, 名称 || コード2 FROM テーブル名 とした場合にはエラーになってしまいます。 宜しくお願い致します。

    2012/11/30 14:50