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なんだけど,私は好きです。 >>11
最近出てるシーラカンス本ではとうとうPerlインターフェイスの項が
外されてる。Java、PHP、Ruby、の各インターフェイスは
紹介されているのに。
Perlに恨みがあるとしか思えん。
Perl、Java、PHP、Pythonあたりは欲しいですよねぇ。
Perlなら漏れが書いてあげるYO!
>>50
第 4 版では是非お願いします。
Postgres 附属の Pg.pm ですか?
それとも DBI? >>37
DBI+DBD や Pg.pm などのパッケージの違いを吸収するルーチン書けばいいじゃん 最近ポスグレを勉強しようと思って書籍を買ってみたんだけど、2冊買って2冊ともクソなんで凹んでるとこでしゅ。
はじめてのPostgreSQLプログラミング 阪上徹+羽生章洋(ソフトバンク)
WindowsユーザのためのPostgreSQL導入活用ガイド 谷田豊盛(技術評論者)
誰かポスグレ初心者に優しいオススメ書籍があったらよろしくたのんます。 >>57
他のRDBMを一通り使えるようになってから、
PostgreSQL オフィシャルマニュアルを購入する。
他のRDBMで基礎を作ってから、PostgreSQLの相違点を学べばスムーズかも知れん。 ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━― psqlで、
database=# \q
でそのデータベースのテーブル一覧が取得できますが、
↓のようにしてもcgiから実行すると取得できません。
$res = $conn->exec("\d");
$res = $conn->exec("\\d");
$res = $conn->exec("\\\d");
どうすれば取得できるのでしょうか。
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄ postgreSQL,perlでテーブルにselectかけると
DBD::PgPP::st execute failed: Unknown message type: ってエラー吐くよぅ。
テーブルのカラムを削るとそのまんまで通るよう。どうしてだよう。 >>67
詳しく書かないと分からない
メーリングリストのほうが反応もよいと思われ ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン つながる。
my $dbh = DBI->connect("dbi:Pg:dbname=hogehoge", "username", "password");
my $dbh = DBI->connect("dbi:Pg:dbname=hogehoge;port=5432", "username", "password");
つながらない。
my $dbh = DBI->connect("dbi:Pg:dbname=hogehoge;host=localhost", "username", "password");
# could not connect to server: Connection refused
PostgreSQLは、Apacheと同じサーバー上で動いてます。
上のようにしてPerl/CGIでPostgreSQLにつなげてるんですが、
host=localhost を追加するとつながってくれません。
な ん で じ ゃ − >>73
postmaster に -i オプションつけて立ち上げないと TCP/IP接続できん…か。。
しらんかったYO! thx postgreSQLてなんて読むの?
ぽすとぐれ? ぽすとぐれえすきゅーえる
「ぽすとぐれす」、「ぽすぐれ」は略称。
べつに「ぽすとぐれす」は略称じゃないんだが。
ちなみにPostgreSQLの発音は「ぽすとぐれすきゅーえる」だそうだ。 そういや、俺が初めて触った頃の Postgres は、まだSQLが使えなくて、
よくわからん謎のクエリ言語がついてたな
∧_∧
( ・∀・) | | ガガッ
と ) | |
Y /ノ .人
/ ) .人 < >_∧∩
_/し' < >_∧∩`Д´)/
(_フ彡 V`Д´)/ / ←>>56
/ ←>>69 ◎2chスレッド勢いランキングサイトリスト◎
★+ニュース板
・ 2NN (推薦)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推薦)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推薦)
・ READ2CH
・ i-ikioi
※ 要タイトル名検索
※ 2chブラウザ併用推奨 は い 、 ク ソとショウ ベンを喰って完敗した〜☆ゴキブリ蟯虫(* ^ _ ^ *)♪
ゲラ☆ゲラ☆ゲラ☆ゲラ☆ゲラ☆ゲラ☆
超 絶 ワロ ス(* ^ _ ^ *)♪(* ^ _ ^ *)♪(* ^ _ ^ *)♪
ほ ら っ気色 悪いツラで泣きながら死 ん で る(* ^ _ ^ * )♪ は い 、 ク ソとショウ ベンを喰って完敗した〜☆ゴキブリ蟯虫(* ^ _ ^ *)♪
ゲラ☆ゲラ☆ゲラ☆ゲラ☆ゲラ☆ゲラ☆
超 絶 ワロ ス(* ^ _ ^ *)♪(* ^ _ ^ *)♪(* ^ _ ^ *)♪
ほ ら っ気色 悪いツラで泣きながら死 ん で る(* ^ _ ^ * )♪ は い 、 ク ソとショウ ベンを喰って完敗した〜☆ゴキブリ蟯虫(* ^ _ ^ *)♪
ゲラ☆ゲラ☆ゲラ☆ゲラ☆ゲラ☆ゲラ☆
超 絶 ワロ ス(* ^ _ ^ *)♪(* ^ _ ^ *)♪(* ^ _ ^ *)♪
ほ ら っ気色 悪いツラで泣きながら死 ん で る(* ^ _ ^ * )♪ 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
AL67MT4K0J 熊本県の阿蘇山を背景に、草原に大規模太陽光発電所(メガソーラー)のパネルが延々と連なっていた。
阿蘇地域は国内最大級の草原地帯。外輪山南側の山都町で、約119ヘクタール(福岡ペイペイドーム17個分)に広がるパネル約20万枚に、太陽光が照り返る。九州最大級のメガソーラーで、2022年9月に稼働し、出力約8万キロワット。九州電力川内原発1基の約1割に匹敵する規模だ。もともとは隣接する高森町の住民約30人が共同所有し、牛を放牧する「牧野」だった。
「説明会が開かれ、売買は円満に進んだ」。共同所有者だった70代男性はこう振り返る。かつては農耕用として各戸が牛数頭を飼った。繁殖子牛を売った収入もあったが、農機具の機械化が進み、徐々に飼育されなくなった。草原を維持する野焼きも10年ほど前から行われていない。男性たちを含め合計三つの牧野組合が土地を売却した。
阿蘇周辺は、草原や火山を特徴とする「阿蘇くじゅう国立公園」に指定され、国が管理する。メガソーラー建設は本紙が確認しただけで5カ所に及ぶ。公園を避けるような近接地域や、国立公園内でも規制が緩いエリアで相次いでいた。
■ ■
その一つ、外輪山の北側にある同県小国町。2月、牛がのんびりと休む牧野の斜面を登ると、山頂付近の草原で、約4万枚のパネル設置工事が進んでいた。国立公園内の「普通地域」ではあるが、届け出のみで建設できるエリアだ。
牧野の組合員の男性によると、50年ほど前は約50世帯で計200〜250頭の牛を飼育していたが、今は4世帯で50頭ほどに減った。建設地は私有の採草地だったが、既に使われなくなっていたという。