Oracle
 sql >> Base de données >  >> RDS >> Oracle

comment insérer une longue chaîne oracle clob ou blob

Votre littéral est implicitement un varchar, vous ne pouvez donc pas attribuer à v_long_text valeur supérieure au littéral maximum de varchar (la longueur maximale de varchar dans plsql est de 32767).

Vous pouvez utiliser la concaténation :

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

Bien sûr, je suppose que le type de colonne MYTABLE_NAME est un CLOB

MISE À JOUR : Exemple de code :

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;