Slashdot Mirror


Dealing with BLOBs in Postgres?

Greyfox asks: "I've got a question and it's been bugging me for a while. I'm trying to do some database programming with Java and PostgresSQL. I've got an array of bytes I'd like to store in the database and I can't quite figure out how to do it. I've tried the method suggested in their old documentation (Which involves doing some JDBC thing with a FileInputStream) and some esoteric BLOB thing involving ResultSet.setBytes() and a more esoteric BLOB thing involving their LargeObjectManager and when I'm at my most successful I get error messages back griping about unexpected EOFs from the connection manager or somesuch. The documentation, example code and web searches have all been profoundly unhelpful. Am I going about this the right way and if I am, what am I missing?"

6 of 16 comments (clear)

  1. Funny by JMZero · · Score: 2, Informative

    Large object documentation

    Or you can use bytea or TEXT like I do.

    -Dave

    --
    Let's not stir that bag of worms...
  2. What's going on with Slashdot? by m_ilya · · Score: 3, Interesting
    Probably I'll lose some karma but anyway.

    When I have a problem of such type and I cannot solve it myself I usually find relevant maillist and ask where. If problem is not very hard chances are that it will be answered in minutes.

    I just don't get why editors pass such submissions and people submit them. It just doesn't make any sense. If you post in PostgreSQL maillist chances that in the future another person with same problem will find solution in its archives. But who in good state of mind will search for solution of PostgreSQL very specific problem on Slashdot? On the other side I'm sure that submitter of this query will have to wait longer for reply which could solve his problems (probably forever).

    --

    --
    Ilya Martynov (http://martynov.org/)

    1. Re:What's going on with Slashdot? by platypus · · Score: 2, Informative

      Ok, I'm a bit late, but anyway:

      You are so right.

      Esp. when you go to google and type in:

      postgres 7.1 blob jdbc

      you get the following link on the first page of search results:

      http://www.postgresql.org/idocs/index.php?jdbc-l o. html

  3. Re:BLOB data in Postgres by Greyfox · · Score: 2

    A BLOB is type oid in Postgres. I'm using type oid for the field I want to store the byte array in. At least, that's what all the documentation I've been able to scare up has said to do...

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  4. Possible Solution by Slipped_Disk · · Score: 2, Informative

    One possible solution I came up with was to UUEncode the data, then store it in a text field.

    I never actually implemented this, but it should be fairly easy to do (either outside the DB or using a Postgres user-defined function.

    The existing BLOB support is documented briefly Here, but quite honestly it... well sucks.

    --
    /~mikeg
  5. PostgreSQL JDBC docs by shrike · · Score: 2, Informative

    You should have a look at the PostgreSQL JDBC documentation, which can be found at http://jdbc.postgresql.org. While you're at it, also search for BYTEA in the PGSQL JDBC mailingslist.