[pgsql-jp: 32960] Re: 画像などバイナリファイルの扱い

TOSHIMITSU Akihiko pq6a-tsmt @ asahi-net.or.jp
2004年 5月 17日 (月) 21:20:36 JST


利光です。

ラージオブジェクトを
かなり前(7.1.3)に使ったきりなので
違うかもしれませんが
前にうまく動作しなかったのは、
http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html#4.20
http://www.postgresql.jp/document/pg742doc/html/jdbc-binary-data.html
あたりが原因とか関係ないですか?
(重要項目: SQLトランザクションブロック内でラージオブジェクトをアクセス
しなければなりません。 setAutoCommit(false)を呼び出してトランザクション
ブロックを開始することができます)


またラージオブジェクトであれば、下記とか参考になるかと思います。
http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html#4.16
http://www.postgresql.jp/document/pg742doc/html/jdbc-binary-data.html
http://www.postgresql.jp/document/pg742doc/html/lo-interfaces.html
http://www.postgresql.jp/document/pg742doc/html/lo-funcs.html
http://www.postgresql.jp/document/pg742doc/html/lo-examplesect.html
http://www.postgresql.jp/document/pg742doc/html/datatype-oid.html

http://www.postgresql.jp/document/pg742doc/html/jdbc-binary-data.html
の話で判断されてはいかがでしょうか?
(もうすでに参考にされてますか。)
また、contribの
contrib/lo
contrib/pg_dumplo
contrib/vacuumlo
vacuumloは勝手に削除されないラージオブジェクトにとって
非常に便利ですが、関連するoidを別テーブルに格納してないと
せっかくつくったラージオブジェクトを
全部削除してしまうので注意が必要です。
(ですが、ラージオブジェクトを消したい場合は、
vacummloをする前に該当行を削除するだけなのでお勧めです。)


#bytea型に入れるのをBLOBっていうんですか?
#私はラージオブジェクト=BLOBかと思ってました。

以上

>
>ご返答ありがとうございます。
>結論としては、BLOBかラージオブジェクトどちらでもよい、ということでしょうか。
>
>> > > 他のデータベースでは数十Mバイトのバイナリデータをテキストにエンコード
>> > > してDBに格納する,なんてことをするんですか?私はてっきりBLOBを使うのか
>> > > と思っていました.
>> > 
>> > oracleではBLOBを使ってバイナリデータの格納をやったことがあるのですが、
>> > postgresでもBLOBを使っての格納は可能なのでしょうか?
>> 
>> BLOB = Binary Large OBject ですから,バイナリデータを格納できな
>> かったら名乗りが矛盾しています。
>> 
>> > ラージオブジェクトですが、やはりアプリとpostgresのホストは同じである
>> > 必要があるのでしょうか?
>> 
>> そんな必要はありません。
>




pgsql-jp メーリングリストの案内