Solución:
- dividir la cadena de caracteres larga en 4000 caracteres o menos fragmentos
- cree clobs para cada fragmento usando la función to_clob ()
- concatenar los clobs
Aquí hay un ejemplo:
insert into <table> (clob_column)
values
(
to_clob(' <=4000 symbols ')
||to_clob(' <=4000 symbols ')
||to_clob(' <=4000 symbols ')
...
||to_clob(' <=4000 symbols ')
);
El máximo para una inserción única es 4000 caracteres (el literal de cadena máximo en Oracle). Sin embargo, puede utilizar la función lob. dbms_lob.append()
para agregar fragmentos de (máximo) 4000 caracteres al clob:
CREATE TABLE don (x clob);
DECLARE
l_clob clob;
BEGIN
FOR i IN 1..10
LOOP
INSERT INTO don (x) VALUES (empty_clob()) --Insert an "empty clob" (not insert null)
RETURNING x INTO l_clob;
-- Now we can append content to clob (create a 400,000 bytes clob)
FOR i IN 1..100
LOOP
dbms_lob.append(l_clob, rpad ('*',4000,'*'));
--dbms_lob.append(l_clob, 'string chunk to be inserted (maximum 4000 characters at a time)');
END LOOP;
END LOOP;
END;
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)