Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何插入大CLOB字符串_Sql_Oracle_Clob - Fatal编程技术网

Sql 如何插入大CLOB字符串

Sql 如何插入大CLOB字符串,sql,oracle,clob,Sql,Oracle,Clob,我正在尝试从CLOB插入大小超过4000个字符的数据,并且在尝试运行以下SQL脚本时: insert into cleared_data (fdata) select cleared_data_seq.nextval, dbms_lob.substr(dd.fdata, dbms_lob.instr(dd.fdata,'sign')-13,9) from dirty_data dd 这是错误的 ORA-06502: PL/SQL: : character string buffer t

我正在尝试从CLOB插入大小超过4000个字符的数据,并且在尝试运行以下SQL脚本时:

insert into cleared_data (fdata)
select cleared_data_seq.nextval,
    dbms_lob.substr(dd.fdata, dbms_lob.instr(dd.fdata,'sign')-13,9)
from dirty_data dd
这是错误的

ORA-06502: PL/SQL: : character string buffer too small

我想剪切字符串,它从第9个字符开始,在单词“sign”之前以字符结束。如何解决这个问题?

添加要发布的源表和目标表的结构。还有一件事:insert语句中有一个字段,SELECT语句中有2个字段,结果字符串的长度是多少-
dbms_lob.instr(dd.fdata,'sign')-13的计算结果是什么?
fdata
的数据类型和大小是什么?如果与
dd
(未显示)上的筛选器匹配的任何行的子字符串超过4000个字符,或大小为
fdata
,则会出现此错误。对于太长的子字符串,您想做什么-跳过它,截断它?