[pgsql-jp: 25059] JDBC経由のラージオブジェクト

Naoya Sasao nao-s @ kk.iij4u.or.jp
2002年 3月 2日 (土) 17:51:34 JST


はじめまして、笹尾と申します。
JavaのMLと迷いましたが、こちらにポストさせていただきました。

末尾のコードを実行すると、
java.sql.SQLException: ERROR:  oidin: error in "\377\33......."
                                              (バイナリの値が続く)
と、エラーになってしまいます。
動かない以上、私に落ち度があるのは確かなんですが、
行き詰まってしまいました。
もし、何か分かることがありましたらよろしくお願いします。


環境はFreeBSD 4.4 に PostgreSQL 7.1.3です。
DB名:test01
DB機のアドレス:192.168.1.3
実行環境:Windows2000 (192.168.1.2)
Java:Sun JDK 1.3

インストールに関しては正常にできていると思われます。
(通常のSELECT,UPDATE,INSERT,DELETEは可能)

PostgreSQLオフィシャルマニュアル
8.5「ラージオブジェクトの使用」にならって
psql>CREATE TABLE images (imgName text, imgOid oid);
としてテーブルを作成しました。

------------------------------------------------------------------------
package pgsql_test;

import java.io.*;
import java.sql.*;

public class call_jdbc {
  public static void main(String[] args) {
    try{
      Class.forName("org.postgresql.Driver");
      Connection con =DriverManager.getConnection(
        "jdbc:postgresql://192.168.1.3/test01","postgres","postgres");
      con.setAutoCommit(false);

      File file = new File ("D:/java_dev/pgsql_test/myimage.jpg");
      FileInputStream fis = new FileInputStream(file);
      PreparedStatement ps = con.prepareStatement(
        "insert into images values (?,?)");
      ps.setString(1,file.getName());
      ps.setBinaryStream(2,fis,(int)file.length());

      ps.executeUpdate();
      ps.close();
      fis.close();
      con.commit();
      con.close();
    }catch(Exception ex){
      ex.printStackTrace();
    }
  }
}
------------------------------------------------------------------------

--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  Naoya Sasao
      nao-s @ kk.iij4u.or.jp
_/_/_/_/_/_/_/_/_/_/_/_/_/_/




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