PerlでPostgreSQL
いままで語られてそうで意外と語られて無くない?
ドキュメントも少ないし情報交換しませんか? めちゃめちゃ簡単じゃん(@o@;
なんでperlでやってなかったんだろう >>8
CPANでPostgres.pmの最終更新とか見るのが吉かと。
DBI周りの情報を集めてみるともっと吉かと。 Pgで使ってます。
例えばですが
$sql = "select * from table";
$result = $conn->exec($sql);
としてから必要な範囲のデータをfor等で取り出すのと
先に必要な部分を指定しておいて
$a = 4;# 必要な場所
$sql = "select * from table limit 5 offset $a";
$result = $conn->exec($sql);
とした方が負荷がかからないのでしょうか?
今のところレコード数が少ないので前者でやっております、両方比べたところ
差が感じられなかったのですが。 技術評論社の「シーラカンス本」のPerlのサンプルがPg.pmで載ってたから、それでそのままDBIじゃなくてPg.pmをつかっちゃってるヒトが多いです。
ちなみにあの著者、実はPerlが苦手で(改訂版で書いてる)改訂版ではPerlのサンプルが無くなってるってありさま。
苦手なら書くなよ.... postgres のソースに附属するのはPg.pmだから、っていう
理由もあるのでは? シーラカンス本(改訂前)しかメジャーな文献はないのか? pg使ってます
\copy hoge to /tmp/backup/a.dat
これをPerlからやることってできますか? CGIでPostgreSQLとウエブ上から連携とりたいのですが、
create nobodyでユーザをつくり、GRANTで権利をあたえても
CGIうまく動作しません。
どなたか、心当たりある方いらっしゃいますか?
環境は
Debian+Apache+PostgreSQL(7.1.1)です。
Apacheはaptでもってきたものです。 >>16
PostgreSQL7.ほにゃらら以降から、sequence の方にも権限を
与えなければINSERTが出来ない、という現象が確認されました。
もしかしてそれかにゃ? 意外とPerlで使ってる人が少ないのに驚きだなぁ
CGIに入門するときはPerlで覚える人が多いのになぁ
やっぱしPHPでやる人が多いんだろうか? ラージオブジェクトを使おうと思うのだが勇気のいるものなのか?
Perl関連はテキスト少なすぎ、ここを育てましょうか >>21
BLOBってPostgreSQL 7.1より前だとバックアップが面倒だよね。 バックアップに不便だから勇気がいるって言われたのか。。。納得 $conn->exec("begin");
$pic = $conn->lo_open(OID, "PGRES_INV_READ");
print "$pic\n";
$conn->lo_close($pic);
$conn->exec("commit");
Pg使用
これでやったけど絵が表示できないっす。根本的に何か間違ってるっすかね? 自己訂正
$conn->exec("begin");
$fd = $conn->lo_open(OID, "PGRES_INV_READ");
$bite = $conn->lo_read($fd, $pic,30000);
print "$pic\n";
$conn->lo_close($fd);
$conn->exec("commit");
表示ヘッダはimage/jpegで内容も当然jpgです。
様々と試してみたのですがバイナリをそのまま文字として吐き出してる
のでしょうか?文字化けしたような文字が出てくるだけです。 >>25
print $pic;
じゃ駄目かな??よくわからないけど。
""が怪しい 自己レス
$conn->exec("begin");
$fd = $conn->lo_open(OID, "PGRES_INV_READ");
$bite = $conn->lo_read($fd, $pic,30000);
binmode STDOUT;
print $pic;
$conn->lo_close($fd);
$conn->exec("commit");
としてみてもだめだね、なんだろう?
pgsql-jp MLの検索で同じようなのを見つけてその解決スクリプトみたいなのを
見てたけど基本的にはずしてないとおもうんだけど
pgsql-jp MLでもそうだったけどうちのサーバーがRQ3だからかな?
とりあえず>>29さんのいうようにsys関係の関数を試してみるかなぁ さらに自己レス
>>30で試したものを通常のRedHat7入ったサーバーで試したら
動きました。
RQ3のPostgreSQLのバージョンの問題でしょうか? >>31
PostgreSQL←読みにくい。半角英数文字を使うように。 >>13
Linux Magazine 1月号P169にDBD:pgでの記事あり。
8ページ書いてるから初心者は役に立つかも。
Linux world 2月号P143にmod_perl+Pgでの記事あり。
5ページ書いてある。mod_perlとmod_phpの速度比較について。
現在、どちらも書店で買える。
perl+DBD:pg+postgreSQL7.1.*でSQLのリファレンスと事例サンプル付き書籍
をキボンヌ Pgは全然駄目だと思う・・・
DBI(DBD::Pg)を使ったほうがはるかにええでぇ。 >>21
DBIからlo_*()を使うのってちょっと一瞬わかりにくいよね。
pg_INV_WRITEとかの定数がデータベースハンドルからとらなきゃいけない
( $dbh->{ pg_INV_WRITE } ・・・なんでDBD::Pg::INV_WRITEとか
ないねん??)とか、関数名が$dbh->func()の一番最後に来たり・・・ >>39
ageてくれて気づいた。こんなスレあったんだって。
新しい情報キボンヌ。 コテハンですなぁ。unix板中心にいろんなとこで見かけますなぁ。
実際perl dbi + postgreSQL で構築してある
サイト教えて下さい 関連書籍
一応,張っておく。
# みんな知ってるよね?
http://www.oreilly.co.jp/BOOK/perldbi/
PostgresというよりはDBI+DBDなんだけど,私は好きです。