[Perl] => [DBI]
データベースへラージオブジェクトを書き込む場合、書き込みの処理とOIDを格納する2ステップに分かれます。以下の例では$dataに格納するデータが入っているものと見なします。適宜エラー処理をしてください。
#!/usr/bin/perl
use DBI;
#AutoCommitはoffにすること
$dbh = $dbh = DBI->connect("DBI:Pg:dbname=dbname","username","password",{AutoCommit => 0});
#ラージオブジェクトに書き込むデータの長さを取得
my($length) = length($data);
#ラージオブジェクトの作成
my($lobj_id) = $dbh->func($dbh->{pg_INV_WRITE}, 'lo_creat');
#ラージオブジェクトを書き込みでオープン
my($lobj_fd) = $dbh->func($lobj_id, $dbh->{pg_INV_WRITE}, 'lo_open');
#ラージオブジェクト書き込み
$dbh->func($lobj_fd, $data, $length, 'lo_write');
#ラージオブジェクトをクローズ
$lobj_fd = $dbh->func($lobj_fd, 'lo_close');
#オブジェクトIDをデータベースに格納
my($sth) = $dbh->prepare("UPDATE sample SET \"OID\" = $lobj_id WHERE \"ID\" = $id");
$sth->execute;
$sth->finish();
$dbh->commit();
$dbh->disconnect();
|
入門Perl DBI ¥ 3,990 / 売り上げランク: 164362 / 377 ページ DBIを使用したPerlスクリプトは、今までに幾つか書いてきましたが DBIの機能を活かしきれたものではありませんでした。 適当なエラー処理、効率の悪い記述、そんなコードを捨てて、 これからDBIを始める人にとっても、適度に飛ばして読めばDBIユーザの入門書となりますし既に使用していて、DBIの詳細を知りたい人にとってもオススメできます ご自分でDBDを書きたい方にはこれとあわせて「Perlを256倍使うための本 DBI編」も読むと参考になると思います。 |
|
Perlを256倍使うための本 DBI編 ¥ 1,260 / 売り上げランク: 284571 / 255 ページ Perlが好きな人がDBDを自作する為の本ですね。 それ以外の人が読んでもほとんど無意味な本だと思います。 「256倍シリーズについにPerlが登場!Perlを用いてデータベースにアクセスするインターフェイスであるDBIについて徹底解説。Perlパワーの底力を知ろう!」といった内容紹介を読んでDBIの一般的な解説書だと思ったんですが、かなり方向が違ってました。 普通のDBIの解説書を求める人には(特に初心の方)全く理解不能の内容でしょう。また理解する必要のない内容です。 DBIの初歩的な部分は全く徹底解説されていません。 とても趣味性の濃い内容だと感じました。 |
|
Ruby‐DBウェブデザイン―Oracleなど10数種類のRDBに対応するRuby/DBI ¥ 1,680 / 売り上げランク: 549538 / 287 ページ タイトルに "DB" ってあるから期待して買ったのですが、DB の話はほとんど無く、何を書きたかったのか良く分からない内容の書籍でした。これだけ外した技術系の書籍もそうは無いんじゃないですか? |



