sql >> Base de Datos >  >> RDS >> Oracle

cómo insertar oracle clob o blob de cadena larga

Su literal es implícitamente un varchar, por lo que no puede asignar a v_long_text valor mayor que el literal máximo de varchar (la longitud máxima de varchar en plsql es 32767).

Puedes usar la concatenación:

DBMS_LOB.APPEND(v_long_text, 'very long string');
DBMS_LOB.APPEND(v_long_text, 'yet another long string');

Por supuesto, asumo que el tipo de columna MYTABLE_NAME es un CLOB

ACTUALIZACIÓN: Código de muestra:

DECLARE
    v_long_text CLOB;
BEGIN
   DBMS_LOB.CREATETEMPORARY(v_long_text,true);
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
   DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));

    INSERT INTO my_table VALUES (v_long_text);
END;