ORA-06502:PL/SQL:使用 CLOB 时出现数字或值错误



对于Oracle 11g不支持json,如您所知,由于varchar2(32767)的大小,我正在使用CLOB创建json数据,但是在这段时间我收到ORA-06502:PL/SQL:数字或值错误。同时,数据大小为 68075。为什么尽管Clob支持4 GB数据,但我还是收到错误?

procedure course
(
  p varchar2 default null
)
as
    cursor cr_course(cp_param varchar2)
    is
        select 
            m.code, 
            m.title 
        from t_course m
            where 
                and type = cp_param;
    jobject clob;
    jitem   varchar2(200);
begin
  dbms_lob.createtemporary(jobject, false);
  for n in cr_course(p) loop
      jitem := '{"key":"' || n.code || '", "value":"'|| n.title || '"},';
      dbms_lob.append(jobject, jitem);
  end loop;
  htp.p(substr(jobject, 0, (length(jobject)-1)));
exception when others then
  dbms_lob.freetemporary(jobject);
  htp.p(sqlerrm);
end;

我认为错误是因为htp.p(substr(jobject, 0, (length(jobject)-1)));

我认为substr不适用于clob类型。您必须将其转换为VARCHAR2数据类型才能对其使用substr

相关内容

  • 没有找到相关文章

最新更新