Oracle
 sql >> Datenbank >  >> RDS >> Oracle

wie man lange Zeichenfolgen oracle clob oder blob einfügt

Ihr Literal ist implizit ein Varchar, daher können Sie v_long_text nicht zuweisen Wert größer als das maximale Literal von varchar (maximale varchar-Länge in plsql ist 32767).

Sie können die Verkettung verwenden:

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

Natürlich gehe ich davon aus, dass der Spaltentyp MYTABLE_NAME ein CLOB ist

AKTUALISIERUNG: Beispielcode:

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;