gpt4 book ai didi

oracle - 如何插入长字符串 oracle clob 或 blob

转载 作者:行者123 更新时间:2023-12-04 00:31:52 26 4
gpt4 key购买 nike

如何插入很长的文本 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;
它的方法不起作用,返回错误 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');

当然,我假设 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;

关于oracle - 如何插入长字符串 oracle clob 或 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49816910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com