ORA-01461 / BLOB / Hibernate

у меня есть один экземпляр базы данных Oracle 10.2.0.4. У меня есть java-приложение на основе spring framework 3.0.5, hibernate 3.5.6. У меня есть таблица с столбцом BLOB (blobContent BLOB) и субъект с java.sql.Blob поле (сопоставлено в hibernate XML-сопоставление как <property name="blobContent" type="blob"/>). Я использую Oracle10gDialect.

Я получаю ORA-01461 периодически пытаясь вставить строку в эту таблицу. Я попробовал несколько драйверов Oracle JDBC (10.2.0.4, 10.2.0.5 и 11.2.0.3) без успеха. Мой googling и поиск metalink ошибка базы данных для этой проблемы. Я декомпилировал Oracle JDBC-driver и проверил код, начиная с метода oracle.jdbc.driver.OraclePreparedStatement.setBinaryStream(int, InputStream, long) до oracle.jdbc.driver.DBConversion до oracle.jdbc.driver.OracleConversionInputStream.

все выглядит нормально, насколько этот код можно считать ОК :)

пожалуйста, посоветуйте, как отслеживать эту проблему... может быть, на стороне Oracle (?)... может быть, ищет какой-то неявный кастинг... Может быть, я пропустил какую-то известную статью Oracle metalink об этой проблеме?

1 ответов


Я считаю, что ошибка oracle является основной причиной моих ошибок. После обновления базы данных я снова проверю проблему и приму свой собственный ответ. Надеюсь, это будет полезно кому-то еще.

кстати наша платформа также AIX / 64x.

Oracle Bug 9018715 "прерывистый ORA-1461 в обновлениях и вставках без длинных типов столбцов"

Тип B-Дефект

исправлено в версии продукта 11.1.0.7.0

тяжести 2 - Серьезная потеря сервиса

Версия 10.2.0.4.0

статус 93-закрыт, не проверен Filer

платформа 212-IBM AIX on POWER Systems (64-разрядная версия)

Создано 14 Октября, 2009

Платформа Версии 5.3

Обновлено 27 Декабря, 201

Базовая Ошибка N / A

База Данных Версии 10.2.0.4.0

Влияет На Платформы Generic

Исходный Продукт Оракул!--1--> :

ORA-1461: можно связать длинное значение только для вставки в длинный столбец часто принимается в клиентских приложениях.

ошибка отображается в операторах insert и update, а также для разных таблиц. Операторы этого типа: Вставить в столбцы (,,,..) значения (:1, :2, :3, ...:северный); или набор обновлений = :1, = :2, = :3,.. = : n где =: m; И ни один из столбцов типа long.

диагностика Анализ:

ошибка начала появляться после обновления СУБД с 10.2.0.3 до 10.2.0.4. Это происходит часто, и на разных столах. Как только ошибка имеет произошло, повторное выполнение того же sql часто удается.

набор символов базы данных: WE8ISO8859P15. клиент Windows. Настройки NLS: NLS_LANG=American_America.WE8ISO8859P15.

приложения подключаются через тонкий драйвер Jdbc версии 10.2.0.1. Тест с драйвером JDBC версии 10.1.0.5 также неудачи.