Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

como inserir oracle clob ou blob de corda longa


Seu literal é implicitamente um varchar, então você não pode atribuir a v_long_text valor maior que o literal máximo de varchar (comprimento máximo de varchar no plsql é 32767).

Você pode usar a concatenação:
DBMS_LOB.APPEND(v_long_text, 'very long string');
DBMS_LOB.APPEND(v_long_text, 'yet another long string');

Claro, estou assumindo que o tipo de coluna MYTABLE_NAME é um CLOB

ATUALIZAÇÃO: Código de amostra:
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;