DECLARE
l_json json_object_t;
l_text CLOB := EMPTY_CLOB();
l_tmp1 CLOB := EMPTY_CLOB();
l_tmp2 BLOB := EMPTY_BLOB();
BEGIN
SELECT '{"text": "'||RTRIM(XMLAGG (XMLELEMENT(e, text, ',').extract('//text()')).getclobval(), ',')||'"}'
INTO l_text
FROM (SELECT TO_CHAR(TO_DATE(LEVEL, 'j'), 'jsp') text
FROM dual CONNECT BY LEVEL < 25000);
dbms_output.put_line('started with ' || dbms_lob.getlength(l_text) || ' chars');
l_json := json_object_t.parse(l_text);
l_tmp1 := l_json.get_clob('text');
l_tmp2 := l_json.get_blob('text');
dbms_output.put_line('clob got ' || dbms_lob.getlength(l_tmp1) || ' chars and blob ' || dbms_lob.getlength(l_tmp2) || ' chars');
END;