PerlでのDBアクセス
PerlでのDBアクセスと言えばDBIモジュールなどがありますよね。
こんなの。
$dsn = 'DBI:mysql:mydb'; $user = 'webuser'; $password = 'mypass'; $dbh = DBI->connect($dsn, $user, $password, { RaiseError => 1, AutoCommit => 0 }); my $sth = $dbh->prepare( "SELECT f2, f3 FROM table WHERE f1=?" ); $sth->execute; while(@row = $sth->fetchrow_array) { print "@row\n"; } $dbh->disconnect;
ただ、これだとSELECTの結果を一気に持ってきた後に処理するので、
数百万件レコードがSELECT対象だとちょっと使えませんよね。
要はカーソル使いたいんですけど。
調べてみましたが、どうやらPerlでカーソルフェッチ使う方法はなさそうです。
やっぱりこういう場合はpl/pgsqlかC(ecpg)しかなさそう…。
実際、Perl便利だから全部Perlに移行したかったんだけどなー