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 также неудачи.