如何插入很长的文本100000 <length(string) < 300000
oracle clob 或 blob?
DECLARE
v_long_text CLOB;
BEGIN
v_long_text := 'my long string text';
INSERT INTO MYTABLE_NAME
VALUES (v_long_text);
END;
Run Code Online (Sandbox Code Playgroud)
它的方法不起作用,返回错误 PLS-00172: string literal too long
你的文字隐式是一个 varchar,所以你不能分配给v_long_text大于 varchar 最大文字的值(plsql 中的最大 varchar 长度是 32767)。
您可以使用串联:
DBMS_LOB.APPEND(v_long_text, 'very long string');
DBMS_LOB.APPEND(v_long_text, 'yet another long string');
Run Code Online (Sandbox Code Playgroud)
当然,我假设 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;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8456 次 |
最近记录: |