with json as
( select '["mit", "nach", "nebst", "bei"]' doc
from dual
)
SELECT value
FROM json_table( (select doc from json) , '$[*]'
COLUMNS (value PATH '$'
)
)
VALUE | mit | nach | nebst | bei |
---|
create or replace
type string_tbl_t as table of varchar2(2000);
Create generic function to parse JSON array to table of varchar2
create or replace FUNCTION json_array_to_string_tbl (
p_json_array IN VARCHAR2
) RETURN string_tbl_t
is
l_string_tbl string_tbl_t:= string_tbl_t();
begin
if p_json_array is not null and length(p_json_array)>0
then
SELECT value
bulk collect into l_string_tbl
FROM json_table( p_json_array, '$[*]'
COLUMNS (value PATH '$'
)
);
end if;
return l_string_tbl;
end json_array_to_string_tbl;
select column_value
from table(json_array_to_string_tbl('["mit", "nach", "nebst", "bei"]'))
COLUMN_VALUE | mit | nach | nebst | bei |
---|
create type person as object
( first_name varchar2(50)
, last_name varchar2(50)
);
with json as
( select '[{"firstName": "Tobias", "lastName":"Jellema"},{"firstName": "Anna", "lastName":"Vink"} ]' doc
from dual
)
SELECT first_name
, last_name
FROM json_table( (select doc from json) , '$[*]'
COLUMNS ( first_name PATH '$.firstName'
, last_name PATH '$.lastName'
)
)
FIRST_NAME | LAST_NAME | Tobias | Jellema | Anna | Vink |
---|
with json as
( select '[{"firstName": "Tobias", "lastName":"Jellema"},{"firstName": "Anna", "lastName":"Vink"} ]' doc
from dual
)
SELECT person( first_name , last_name) person
FROM json_table( (select doc from json) , '$[*]'
COLUMNS ( first_name PATH '$.firstName'
, last_name PATH '$.lastName'
)
)
PERSON | [unsupported data type] | [unsupported data type] |
---|