SET SERVEROUT ON FORMAT WRAPPED LINESIZE 1000
DECLARE
l_arr JSON_ARRAY_T;
PROCEDURE display (p_arr IN JSON_ARRAY_T) IS
BEGIN
DBMS_OUTPUT.put_line(p_arr.stringify);
END;
BEGIN
-- Create a new array.
l_arr := JSON_ARRAY_T('["apple","orange","banana"]');
display(l_arr);
-- Append a new element to the array.
l_arr.append('pear');
display(l_arr);
-- Append a NULL element to the array.
l_arr.append_null;
display(l_arr);
-- Add a new element to the array.
-- 0-based, so 3 is position 4.
l_arr.put(3, 'grape');
display(l_arr);
-- Add a NULL element to the array.
-- 0-based, so 3 is position 4.
l_arr.put_null(3);
display(l_arr);
-- Remove elements from the array.
-- Notice reverse order, as positions are automatically shuffled.
l_arr.remove(6);
l_arr.remove(3);
display(l_arr);
-- Amend an element in the array.
l_arr.remove(3);
l_arr.put(3, 'pineapple');
display(l_arr);
-- Append a new object to the array.
l_arr.append(JSON_OBJECT_T('{"grape":6}'));
display(l_arr);
-- Append a new array to the array.
l_arr.append(JSON_ARRAY_T('[1,2,3,4,5]'));
display(l_arr);
END;
/
["apple","orange","banana"]
["apple","orange","banana","pear"]
["apple","orange","banana","pear",null]
["apple","orange","banana","grape","pear",null]
["apple","orange","banana",null,"grape","pear",null]
["apple","orange","banana","grape","pear"]
["apple","orange","banana","pineapple","pear"]
["apple","orange","banana","pineapple","pear",{"grape":6}]
["apple","orange","banana","pineapple","pear",{"grape":6},[1,2,3,4,5]]
PL/SQL procedure successfully completed.
SQL>
SET SERVEROUTPUT ON FORMAT WRAPPED LINESIZE 1000
DECLARE
l_obj JSON_OBJECT_T;
l_arr JSON_ARRAY_T;
PROCEDURE display (p_obj IN JSON_OBJECT_T) IS
BEGIN
DBMS_OUTPUT.put_line(p_obj.stringify);
END;
PROCEDURE display (p_arr IN JSON_ARRAY_T) IS
BEGIN
DBMS_OUTPUT.put_line(p_arr.stringify);
END;
BEGIN
-- Create a new object containing an array.
l_obj := JSON_OBJECT_T('{"order":1234,"order_items":[{"1":"apple"},{"2":"orange"},{"3":"banana"}]}');
display(l_obj);
-- Get the array out of the object.
l_arr := l_obj.get_Array('order_items');
display(l_arr);
-- Amend an element in the array.
l_arr.put(2, JSON_ELEMENT_T.parse('{"3":"green banana"}'), TRUE);
display(l_arr);
-- Append a new element into the array.
l_arr.append(JSON_ELEMENT_T.parse('{"4":"pineapple"}'));
display(l_arr);
-- Overwrite the array in the object.
l_obj.put('order_items',l_arr);
display(l_obj);
END;
/
{"order":1234,"order_items":[{"1":"apple"},{"2":"orange"},{"3":"banana"}]}
[{"1":"apple"},{"2":"orange"},{"3":"banana"}]
[{"1":"apple"},{"2":"orange"},{"3":"green banana"}]
[{"1":"apple"},{"2":"orange"},{"3":"green banana"},{"4":"pineapple"}]
{"order":1234,"order_items":[{"1":"apple"},{"2":"orange"},{"3":"green banana"},{"4":"pineapple"}]}
PL/SQL procedure successfully completed.
SQL>