Converting XML to JSON using Apex [message #681584] |
Wed, 05 August 2020 14:34  |
wantmannu
Messages: 42 Registered: June 2009 Location: cali
|
Member |

|
|
Hello Everyone,
There is a table(xxln_vs_publish_stg) has xmltype column(xml_data) which stores XML data. I have a requirement to convert XML data to json data.
For that, I am using apex_json.write to convert. While executing below logic for changing it, I am getting Error as: ORA-20987: APEX - JSON.WRITER.NOT_OPEN - Contact your application administrator.
Can you please help what is it I am doing which is wrong.
DECLARE
l_xml sys.xmltype;
l_amount BINARY_INTEGER := 32000;
l_buffer RAW(32000);
l_pos INTEGER := 1;
l_stage NUMBER;
content CLOB;
content_blob BLOB;
content_length NUMBER;
BEGIN
SELECT
xml_data
INTO l_xml
FROM
xxln_vs_publish_stg
WHERE
xml_data IS NOT NULL
AND ROWNUM < 2;
content := xmltype.getclobval(l_xml);
xxln.convert_clob_to_blob(content, content_blob);
content_length := dbms_lob.getlength(content_blob);
dbms_output.put_line(content_length);
apex_json.initialize_clob_output;
IF dbms_lob.getlength(content_blob) < 32000 THEN
apex_json.write(content);
ELSE
WHILE l_pos < content_length--DBMS_LOB.GETLENGTH(v_output_file_blob)
LOOP
dbms_lob.read(content_blob, l_amount, l_pos, l_buffer);
apex_json.write(content);
l_pos := l_pos + l_amount;
END LOOP;
END IF;
dbms_output.put_line(apex_json.get_clob_output);
apex_json.free_output;
END;
Thanks
Mandeep Kaur
|
|
|
|
|