Oracle
 sql >> Database >  >> RDS >> Oracle

come inserire un blob o un blob di oracolo a stringa lunga

Il tuo letterale è implicitamente un varchar, quindi non puoi assegnare a v_long_text valore maggiore del valore letterale massimo di varchar (la lunghezza massima di varchar in plsql è 32767).

Puoi usare la concatenazione:

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

Ovviamente, presumo che il tipo di colonna MYTABLE_NAME sia un CLOB

AGGIORNAMENTO: Codice di esempio:

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;