declare l_clob clob; l_warning varchar2(32767); l_list json_list; l_dest_offset integer; l_src_offset integer; l_lang_context integer; l_col1 VARCHAR2(100); l_col2 VARCHAR2(100); l_col3 VARCHAR2(100); l_col4 VARCHAR2(100); begin l_dest_offset := 1; l_src_offset := 1; l_lang_context := dbms_lob.default_lang_ctx; DBMS_LOB.createtemporary(l_clob, FALSE); DBMS_LOB.CONVERTTOCLOB( dest_lob => l_clob, src_blob => :body, amount => DBMS_LOB.LOBMAXSIZE, dest_offset => l_dest_offset, src_offset => l_src_offset, blob_csid => dbms_lob.default_csid , lang_context => l_lang_context, warning => l_warning ); l_list := json_list(l_clob); for i in 1..l_list.count LOOP l_col1 := json_ext.get_string(json(l_list.get(i)),'attributes.Name'); l_col2 := json_ext.get_string(json(l_list.get(i)),'attributes.Status'); l_col3 := json_ext.get_string(json(l_list.get(i)),'attributes.Manufacturer'); l_col4 := json_ext.get_string(json(l_list.get(i)),'attributes.Model'); INSERT INTO PRINTER_INFO(RECORD_NUM,Name,Status,Manufacturer,Model) VALUES (i,l_col1,l_col2,l_col3,l_col4); end loop; end;