Значение CLOB слишком велико для вставки в таблицу DB2
У меня есть объект java.sql.Clob, который я заполняю из запроса Oracle, а затем мне нужно вставить это поле в таблицу DB2 (также столбец Clob). Итак, в моем классе sqlj я создал тип java.sql.Clob и установил значение с результатом из Oracle select (также java.sql.Clob). Длина Clob, который я пытаюсь вставить, составляет около 2,5 МБ, или dbms_lob.getlength возвращает 2500012.
Когда SQLJ выполняется, он генерирует исключение:
COM.ibm.db2.jdbc.DB2Exception: [IBM] [Драйвер CLI][DB2] SQL0433N Значение "" слишком длинное. SQLSTATE = 22001
Я использую версию DB2: Сервер базы данных = DB2 OS/390 8.1.0
Версия Oracle - Oracle Database 10g Enterprise Edition, выпуск 10.2.0.5.0 - 64-разрядная версия.
Есть ли у вас идеи, почему эта ошибка выдается? Я искал документацию IBM, и предполагается использовать объект java.sql.Clob для вставки в столбец DB2 clob...
"Входные параметры для столбцов CLOB Для параметров IN для столбцов CLOB или параметров INOUT, которые используются для ввода в столбцы CLOB, можно использовать один из следующих методов: Используйте входную переменную java.sql.Clob, которая является точным соответствием для столбец CLOB: cstmt.setClob(parmIndex, clobData); ..."
1 ответ
Увеличьте размер столбца CLOB в базе данных. Проверьте эту ссылку для максимального размера столбца clob