最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ORA-22828输入样式或替换参数超过了32k大小限制

来源:动视网 责编:小采 时间:2020-11-09 14:23:15
文档

ORA-22828输入样式或替换参数超过了32k大小限制

ORA-22828输入样式或替换参数超过了32k大小限制:今天调试程序报以下错误: ORA-22828: input pattern or replacement parameters exceed 32K size limit22828. 00000 - input 今天调试程序报以下错误: ORA-22828: input pattern or replacement paramet
推荐度:
导读ORA-22828输入样式或替换参数超过了32k大小限制:今天调试程序报以下错误: ORA-22828: input pattern or replacement parameters exceed 32K size limit22828. 00000 - input 今天调试程序报以下错误: ORA-22828: input pattern or replacement paramet


今天调试程序报以下错误: ORA-22828: input pattern or replacement parameters exceed 32K size limit22828. 00000 - input

今天调试程序报以下错误:

ORA-22828: input pattern or replacement parameters exceed 32K size limit
22828. 00000 - "input pattern or replacement parameters exceed 32K size limit"
*Cause: Value provided for the pattern or replacement string in the form of
VARCHAR2 or CLOB for LOB SQL functions exceeded the 32K size limit.
*Action: Use a shorter pattern or process a long pattern string in multiple
passes.

可用以下脚本重现:

declare
cb clob;
ret_cb CLOB;
begin
cb := rpad('x', 32767, 'x')||'x';
ret_cb := '#result#';
ret_cb := replace(ret_cb, '#result#', cb);
end;
/

解决方式如下:

编写函数:

create or replace function replace_with_clob
(i_source in clob
,i_search in varchar2
,i_replace in clob
) return clob is
l_pos pls_integer;
begin
l_pos := instr(i_source, i_search);
if l_pos > 0 then
return substr(i_source, 1, l_pos-1)
|| i_replace
|| substr(i_source, l_pos+length(i_search));
end if;
return i_source;
end replace_with_clob;

改写后:

declare
cb clob;
ret_cb CLOB;
begin
cb := rpad('x', 32767, 'x')||'x';
ret_cb := '#result#';
ret_cb := replace_with_clob(ret_cb, '#result#', cb);
dbms_output.put_line(substr(ret_cb, 1, 100));
end;
/

执行成功!

-----------------------------------

Dylan Presents.

本文永久更新链接地址:

文档

ORA-22828输入样式或替换参数超过了32k大小限制

ORA-22828输入样式或替换参数超过了32k大小限制:今天调试程序报以下错误: ORA-22828: input pattern or replacement parameters exceed 32K size limit22828. 00000 - input 今天调试程序报以下错误: ORA-22828: input pattern or replacement paramet
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top