您的文字字面量隐式地成为了一个varchar类型,因此您无法将大于varchar最大文本长度(plsql中的最大varchar长度为32767)的值分配给v_long_text。
您可以使用连接符:
DBMS_LOB.APPEND(v_long_text, 'very long string');
DBMS_LOB.APPEND(v_long_text, 'yet another long string');
当然,我假设MYTABLE_NAME列的类型是CLOB。
更新:
示例代码:
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;