Saltar al contenido

¿Oracle CLOB no puede insertar más de 4000 caracteres?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *