Кроме того, в приведенном ниже решении объясняется, как справиться с этим с помощью PL / SQL
Ссылка: http://gogates.blogspot.com/2013/09/inserting-clob-data-which-is-more-than.html
Вставка данных CLOB длиной более 4000 символов в таблицу Oracle Iпытался вставить 4000+ символов данных в таблицу Oracle, имеющую CLOB в качестве типа данных, но не смог этого сделать, используя простой оператор вставки
Структура таблицы, которую я использовал, выглядит следующим образом
CREATE TABLE ClobTest (id number, clobData clob );
Структура таблицы довольно проста, имеет только 2 столбца числа и тип данных clob.
Теперь ... если вы выполните запрос ниже, он будет выполнен без ошибок
INSERT INTO ClobTest VALUES(1, 'ClobTestData');
Однако при увеличении длины набора данных 4000+ он не будет выполнен успешно и выдаст ошибку, как показано ниже
Отчет об ошибке: Ошибка SQL: ORA-01704: слишком длинный строковый литерал 01704.00000 - «строковый литерал слишком длинный» * Причина: строковый литерал длиннее 4000 символов.* Действие: использовать строковый литерал не более 4000 символов.Более длинные значения могут быть введены только с помощью переменных связывания.
После поиска этой проблемы, вы узнали, что, если вы хотите вставить данные типа 4000+ в тип данных CLOB, попробуйте сделать это с помощью PL-Блок SQL.
Основная причина этого заключается в том, что Oracle SQL не поддерживает тип данных char / varchar, который превышает 4000 символов;однако PL-SQL делает это.
Я использовал ниже анонимный pl-sql для вставки 4000+ символьных данных в тип данных CLOB
DECLARE
vClob VARCHAR(8000);
BEGIN
vClob := '<Charater data having 4000+ characters>';
INSERT INTO ClobTest VALUES(1, vClob);
END;
Чтобы проверить, действительно ли 4000+ знаков вставлено в цельВыполнен ниже запрос
SELECT LENGHT(clobData) FROM ClobTest
Надеюсь, что поможет