argius note

プログラミング関連

OracleのBlob その後(1)

9/27のコメントで予告しましたが、調べてみたので報告します。JDBC限定です。
実行環境は、WindowsXP Professional SP2 + JDK 1.4.2_11 + Eclipse 3.0.1で、最初はOracleだけ調べようと思ったのですが、PostgreSQLMySQLでも調べてみることにしました(下記のproductが対象)。

Oracle 8i
Oracle 10g
PostgreSQL 8.0.7
MySQL 4.0.22-standard

ですが、思ったより大変なので、詳細の結果はまた後日ということで。
結論から言うと、8iではBlobのままでは使えない。明示的にjava.sql.Blob→oracle.sql.BLOBしなければならない。10gでは、java.sql.Blobのままで操作可能。PostgreSQLは、ラージオブジェクトはOID型にlo_create(0)などと書いて初期化するらしい。MySQLは、Blobのままで良いようだ。
同じ時点のバージョンではないので、公平な評価ではないことを明言しておく。