对于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;
答案 0 :(得分:1)
我认为错误是因为htp.p(substr(jobject, 0, (length(jobject)-1)));
我不认为substr
适用于clob类型。您必须将其转换为VARCHAR2数据类型才能使用substr
。