对于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
。