PostgreSQL

全1193件中181~200件表示
  • PostgreSQLを、Win7Homeにインスト

    初めて質問させていただきます。 勉強のため、私物のノートパソコンに、PostgresSQL9.0.6 をインストールしようとしています。 ところが、ダウンロード終了後、「実行」を押しても、何も起きません。 http://www.yamada-lab.org/doc/win_vista/postgresql8/01install/01.html 上記のアドレスのページで、 ・非管理者アカウントの作成 ・そのアカウントで、ローカルセキュリティポリシーを設定 を行わなければならない、というところまでは掴みましたが、 Windows7 でその設定をする方法がわかりません。 OSはWindows7のHomeEditionです。 そもそも、HomeEditionでは、PostgresSQLをインストールすることはできないのでしょうか。

  • phpからpostgresにSQLを投げるとエラー

    お世話になります。 phpで作成したある機能から、postgresに対してupdate文を投げると以下のようなエラーが返ります。 server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. update文は非常に簡単なものです。 UPDATE [table_name] SET column1 = 'value1', column2 = 'value2', upd_date = 'yyyy-mm-dd hh:mm:ss' WHERE column_key = 'key' このエラーがでると、該当機能で発行するそれ以降のクエリは全て同様のエラーで失敗しますが、DBが落ちるなどの現象はありません。 他の機能から別トランザクションでアクセスした場合は、正常にアクセスできます。 システムログを確認したところ、同時間帯に以下のようなエラーがでました。 kernel: postmaster[11273]: segfault at 0000002a9e866000 rip 000000000057e4c8 rsp 0000007fbfffccb0 error 6 しかし、このエラーは毎回でるわけではなく、成功する場合もあります。 vacuumdb -U postgres [db_name] -t [table_name] -z を行うとそのエラーは出なくなります。※table_nameは同一。 ただ、バキューム後、2~3時間たつとまた同じ個所で同様のエラーがでます。 該当の機能は1時間に1回動作する機能なのですが、DBの負荷を考えると1時間に1回バキュームをかけるのも忍びないです。 現在は、深夜、朝、夕の計3回バキュームをかけています。 ※一応、実運用レベルではなんとかごまかしている状態です。 データセンターに問い合わせたところ、とくにディスク障害等は出ていないようです。 (どのような調査をおこなって、障害なしと判断しているかまでは、ちょっとわかりません。) セグメンテーション違反とでているので、ハードはあまり関係ないような気がしますし。 ここ、1週間くらいからいきなり出だしたエラーで困っております。 よろしくお願いいたします。 PHP Version 4.3.9 PostgreSQL 7.4.29 CentOS release 4.8 (Final)

  • Insertで重複となったキーをさがすSQL文

    テーブルの移行(Aテーブルのデータをキーを変更してBテーブルにInsertする)を行ったところ、 ERROR: duplicate key violates unique constraint "Bテーブル_unique"とメッセージが出ます。 SQL文はつぎの通りです。 INSERT INTO Bテーブル(契約番号, ユニット番号, 資源番号, 入力日, 数量) SELECT a.契約番号, a.ユニット番号, a.資源番号, a.入力日, a.数量 FROM Aテーブル a ; Bテーブルのキーは、契約番号, ユニット番号, 資源番号, 入力日です。 Aテーブルのキーは、契約番号,入力日,レベル1,レベル2です。 データ件数は約3万件です。 Bテーブルを調査して、重複となるレコードを表示させたいのですが、 SQL文がわかりません。 よろしくご教授ください。

  • postgresql substrでエラー

    いつもお世話になっております。 postgresql8.4でsubstrを使うとエラーになります。 ご教授願えないでしょうか。 select type_cd, brand_cd, brand_name from bags bag inner join type t on substr(bag,0.2) = t.type_cd としています。 尚、type_cd ,brand_cd はinteger function substr(integer, integer, integer) does not exist とエラーが表記されるので、 substr(bag,0.2) → substr(integer(bag),0,2)とやると、 "(" がシンタックスエラーとなります。 なにぶんSQLの経験が少なくてこまっております。 宜しくお願いします。

  • booleanデータのcsv出力形式

    postgresqlのデータをcsvテキストに出力してmysqlに入れたら、booleanデータがmysqlではすべて 0 になりました。 postgresqlのbooleanはt/f表現であり、mysqlでは1/0表現のためと思いますが、うまく処理する方法はないでしょうか? 2011 Dec. 18.

  • PostgreSQLのvarcharとtext

    性能を考えた場合、文字列を格納するカラムはvarcharとtextではやはりvarcharの方が優れているのでしょうか? 文字列には最大120文字しか入れない想定です。 それともバージョンによっては、特に差異はないとかありますか?

  • PLPGSQL レコードセットを列数で取得したい

    Postgresで関数(ストアドプロシージャ)を作成するのに PLPGSQLを使用しています。 レコードセットを取得し、1列目~40列目までを順次値を判定し、特定の値がある場合は、41列~80列のそれぞれ対応する(1列目なら41列目、13列目なら53列目…)列から数値を取得する動きを実現したいと考えています。 上記条件は下記プログラムで実現してますが、再帰処理で同じことが実現できないでしょうか? ※商品マスタを作成して、クエリを作成するのが当たり前と思いますが、よんどころのない事情でこのテーブル形式をを崩せません。(外部システムの汎用データから取り込むためです) ------------------- 以下現状のプログラム ------------------- declare rec record; int1 integer; begin int1:=0; for rec in select * from kudamonouriage where syainid=$1 and kppw=$2 loop if substr(rec.kate1,1,3)='りんご' then int1:=int1+rec.kingaku1; end if; if substr(rec.kate2,1,3)='りんごthen int1:=int1+rec.kingaku2; end if; if substr(rec.kate3,1,3)='りんご' then int1:=int1+rec.kingaku3; end if; … … if substr(rec.kate39,1,3)='りんご' then int1:=int1+rec.kingaku39; end if; if substr(rec.kate40,1,3)='りんご' then int1:=int1+rec.kingaku40; end if; end loop; return int1; end; ---------------- 以上現状のプログラム --------------------- これを ------------------- 希望するプログラム ------------------- declare rec record; int1 integer; begin int1:=0; for rec in select * from kudamonouriage where syainid=$1 and kppw=$2 loop for i 1..40 loop if substr(rec.(i),1,3)='りんご' then int1:=int1+rec.(40+i); end if; end loop; end loop; return int1; end; ---------------- 以上希望のプログラム --------------------- このようにしたいと思っています。 サイト上で色々と検索していますが、解決に至っていません。お力を貸していただけると大変助かります。宜しくお願いいたします。

  • Postgresのthread-safetyについ

    Postgres9のconfigureで--disable-thread-safetyをセットした場合の影響について調べています。 マニュアルには -------------------------------------- クライアントライブラリのスレッドセーフを無効にします。これにより、libpqやECPGプログラム内 の同時実行スレッドは、安全にその固有の接続ハンドルを制御できなくなります。 -------------------------------------- と書かれています。 言葉の意味そのままだと、安全でなくなるように読み取れます。 JavaやPerlで作成したWebアプリからのDB操作を行なっていますが、 プログラム側で意図的にスレッドを作ったりはしていません。 このような環境で、--disable-thread-safetyにするのは何かしらの不都合が発生するのでしょうか? どういった問題が起こりえるのかを知りたいです。 どなたかご存じの方がいらっしゃいましたらご教授願います。

  • postgres9のconfigureでエラー

    Solaris10にpostgres9.0.5をインストールしようとしています。 Solarisには現時点での最新パッチが当たっている状態です(詳細はちょっと不明) 以下のオプションでconfigureを行うと、エラーになります。 ./configure --prefix=/usr/local/postgres --without-readline --enable-thread-safety 以下エラー --------------------------------------------------------------- checking thread safety of required library functions... no configure: error: thread test program failed This platform is not thread-safe. Check the file 'config.log' or compile and run src/test/thread/thread_test for the exact reason. Use --disable-thread-safety to disable thread safety. --------------------------------------------------------------- config.logの中のエラーの内容 --------------------------------------------------------------- configure:28765: checking thread safety of required library functions configure:28798: gcc -m64 -o conftest -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wend if-labels -fno-strict-aliasing -fwrapv -pthreads -pthreads -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS -D IN_CONFIGURE conftest.c -lz -lnsl -lsocket -lm -lpthread -lpthread >&5 Undefined first referenced symbol in file sched_yield /var/tmp//ccVp73Io.o collect2: ld returned 1 exit status ld: fatal: symbol referencing errors. No output written to conftest configure:28802: $? = 1 configure: program exited with status 1 --------------------------------------------------------------- thread-safetyを無効にすれば正常にインストールできます。 このエラーを回避するにはどうすればよいでしょうか? あまり参考にはならない情報かもしれませんが、9.0.4/9.1.1でも同様のエラーが出ます。

  • 秀丸でSQLを書く際に SQLの予約語だけ大文字

    秀丸でSQLを書く際に SQLの予約語だけを、大文字に変換するよい方法は? たとえば select * from table_1 where id=1 order by id desc; と書いて、マクロを起動すると SELECT * FROM talbe_1 WHERE id=1 ORDER BY id DESC; となるようにするよい方法はありませんか? また、予約語が「強調」されると尚良いです。

  • Copy To で出力されない

    以下のコマンドを実行しています。 Copy t_balance TO 'c:/temp/backup/t_balance.csv' CSV HEADER; localHostは正常にコピーされるのですが、サーバ上のデータベースをCopyすると以下のエラーが発生し、出力されません。 ERROR: could not open file "c:/temp/backup/t_balance.csv" for writing: No such file or directory 原因がつかめません。どなたか教えていただけませんか? 環境はPostgreSQL 8.2 クライアントOS:Xp(sp4) サーバOS:2000Server

  • pgAdminIII RAISEの結果取得について

    前回の質問を間違えて、解決済にしてしまいました。 前回の質問番号はQNo.7135032です。 改めて質問させて頂きます。 下記ファンクションにて実行してみたのですが、うまくいきません。 CREATE OR REPLACE FUNCTION raise_test(in i_data_num numeric, out o_data_num numeric, out o_data_char character varying) RETURNS integer AS 度重なる質問で、誠に申し訳ございませんが、手法をご教授ください。 よろしくお願いいたします。

  • プロシージャとトリガー

    Aというテーブルのaカラムが更新されれば、Bテーブルの列の中でAテーブルの列id含む列(複数)のbカラムをFalseからTrueに変更されるような、トリガー と プロシージャを作りたいのです。 考えていたのは、プロシージャは、 CREATE FUNCTION update_edit_b() RETURNS OPAQUE AS ' BEGIN (複数列指定?) NEW.b := 't'; RETURN NEW; END; ' LANGUAGE 'plpgsql'; プロシージャで、Bテーブルの複数列を指定するにはどうしたら良いでしょうか? トリガーは CREATE TRIGGER trgger_a AFTER UPDATE OF a ON Table_a FOR EACH STATEMENT EXECUTE PROCEDURE update_edit_b ; こんな感じでしょうか?

  • pgAdminIII RAISEの結果取得について

    お世話になります。 SQLからSQLを呼び出す形で以下のことを行おうとしています。 呼び出し元のSQLにRAISE文を記述し、フィールドの内容を表示させようとしているのですが、 SELECTで実行すると、「PERFROMに変更してください」とのエラーになってしまいます。 そこで、PERFORMに変更し実行しますと、RAISE文の結果が表示されません。 また、PERFORMのままで表示させるには、呼び出し先のSQLにRAISE文を記述すれば 良いようなのですが、呼び出し先のSQLに手を加えたくありません。 (呼び出し先のSQLをテストしているので・・・。) どなたか、うまく表示させる方法をご存知の方がいらっしゃいましたら、是非とも ご教授下さい。 よろしくお願い致します。

  • SQL文の改行コードについて

    text.sql ---------------------------------------- update tbl_name set text = E'「あああああ」 いいいいい うううううう' where id = 1; ---------------------------------------- というSQL文を作成し、実行後、selectにてupdateしたデータを見ると、           text ---------------------------------------- あああああ\r いいいいい\r \r うううううう ---------------------------------------- というように、「\r」が表示された状態となります。 作成したSQL文に間違いがあるのでしょうか? 使用しているDBの文字コード:UTF-8 改行コート:CR+LF になります。 よろしくお願いします。

  • レコードの有無をすばやく検索するSQL文

    初歩的な質問で申し訳ありません。 テーブルAの中に、キー1が100から109までのキーを持つレコードがあるかないかを調べるSQL文を教えてください。 テーブルA キー1 キー2 100   1 100   2 105   1 107   1 上記の場合結果は 100  有り 101  なし 102  なし 103  なし 104  なし 105  有り 106  なし 107  有り 108  なし 109  なし と表示したいのです。 よろしくご教授ください。

  • DBアクセス時間が早くなる理由

    約2万件のデータ読込み、帳票を作成してダウンロードする処理があるのですが、 最初のリクエストでの処理時間が33秒もかかります。 しかし、続けて同じ処理をさせていると、3回目には8秒にまで短縮しました。 繰り返しているとDBアクセス処理が早くなるのはどうしてでしょうか? 使っている言語は Java DBソフトは PostgreSQL です。 よろしくご教授ください。

  • SQL count 別名を条件に使用

    いつもお世話になっております。 標題についてご教授頂きたく質問させて頂きました。 [SQL} select A, B, count(*) as cnt from product where A=1 and cnt > 2 group by A order by cnt desc とこのようにSQLを記述して実行したのですが、 cnt>2でエラーが出ます。 order by には count の別名を使用できるのですが、 where句やHAVINGでは使えません。 この場合 cont(*)>2 またはcount(項目名)>2 としなければならないのでしょうか

  • PostgresSQLで累計計算を処理したい

    SQLで以下のような処理をさせています。 select id,売上,入金,(select sum(売上-入金) from t1 where id<=x.id) as 累計 from t1 as x order by id ; データ行が少ない時は問題ないのですが、多くなるにつれ時間がかかります。最悪はタイムアウトが発生してしまいます。 中間テーブルを使う手もありますが、あまりしたくないので、どのようにすると高速処理が出来るのでしょうか? アドバイスをいただけませんか?

  • サブクエリの複数項目

    いつもお世話になっております。 サブクエリで複数項目を取得する方法をご教授下さい。 [既存] select 商品, 価格, (select user_id from user_master where user_id = 1 ) from products where 商品ID = 1 上記のようなSQLがあり、 user_masterから取得する項目をもうひとつ追加したいと思っています。(user_name) select 商品, 価格, (select user_id, user_name from user_master where user_id = 1 ) as user from products where 商品ID = 1 と修正したいのですが、当然エラーになってしまいます。 この場合は別にサブクエリを指定して取得した方がいいのでしょうか。 宜しくお願い致します。