Thread: InputStream as parameter not supported

InputStream as parameter not supported

From
"Steven Smith"
Date:
I am using PostgreSQL 7.0, with the jdbc7.0-1.2.jar file.
I am trying to send a Large Object to the database but get an error saying
'InputStream as parameter not supported'
The offending statement is
'stmt.setBinaryStream(1, geomStream, geomStream.available());'
where geomStream is an instanceof ByteArrayInputStream and stmt is a
PreparedStatement.
The exact same code runs beautifully under Oracle, but throws this exeption
under PostgreSQL.
I have followed the documentation to the letter so I don't see why it throws
the exception.
The field in the table is of type 'oid', which the documentation uses.


Re: InputStream as parameter not supported

From
Peter T Mount
Date:
Quoting Steven Smith <steven@geometryit.com>:

> I am using PostgreSQL 7.0, with the jdbc7.0-1.2.jar file.
> I am trying to send a Large Object to the database but get an error
> saying
> 'InputStream as parameter not supported'
> The offending statement is
> 'stmt.setBinaryStream(1, geomStream, geomStream.available());'
> where geomStream is an instanceof ByteArrayInputStream and stmt is a
> PreparedStatement.
> The exact same code runs beautifully under Oracle, but throws this
> exeption
> under PostgreSQL.
> I have followed the documentation to the letter so I don't see why it
> throws
> the exception.
> The field in the table is of type 'oid', which the documentation uses.

These methods are implemented in 7.1. Prior to 7.1, you have to use the
getBytes/getBytes methods or the large object api's.

Peter

--
Peter Mount peter@retep.org.uk
PostgreSQL JDBC Driver: http://www.retep.org.uk/postgres/
RetepPDF PDF library for Java: http://www.retep.org.uk/pdf/