Получение BYTEA/BLOB от разных поставщиковJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получение BYTEA/BLOB от разных поставщиков

Сообщение Anonymous »

Код: Выделить всё

PSQLException
выдается при вызове resultSet.getBlob(String) (с NumberFormatException в качестве причины). Столбец имеет тип BYTEA, поскольку в Postgres нет Blob.

Код: Выделить всё

Bad value for type long : \x89504e....

Код: Выделить всё

resultSet.getBinaryStream(String)С другой стороны, 
не выбрасывает. Однако, если я заменю getBlob() на getBinaryStream(), у меня возникнет другая проблема: Oracle выдаст ошибку пустой_blob().

Код: Выделить всё

2026-02-20 13:38:38,069 java.sql.SQLException: ORA-22275: invalid LOB locator specified

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382)
at oracle.jdbc.driver.T4C8TTILob.processError(T4C8TTILob.java:792)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8TTILob.getChunkSize(T4C8TTILob.java:236)
at oracle.jdbc.driver.T4CConnection.getChunkSize(T4CConnection.java:2573)
at oracle.sql.BLOB.getChunkSize(BLOB.java:463)
at oracle.sql.BLOB.getBufferSize(BLOB.java:485)
at oracle.sql.BLOB.getBinaryStream(BLOB.java:265)
at oracle.jdbc.driver.BlobAccessor.getBinaryStream(BlobAccessor.java:263)
at oracle.jdbc.driver.OracleResultSetImpl.getBinaryStream(OracleResultSetImpl.java:2498)
at oracle.jdbc.driver.OracleResultSet.getBinaryStream(OracleResultSet.java:678)

Код: Выделить всё

SELECT empty_blob() AS file_blob
Можно ли как-то заставить его работать в обоих случаях (желательно без уродливых ляпов isPostgres() и тому подобного)?
Java 8. Postgres 13.14. Oracle 11.2.0.3.0.

Подробнее здесь: https://stackoverflow.com/questions/798 ... blob-fetch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»