I have the following problem.
I'm receiving data from an external API and I need to store the tag data that is coming as an array.
I already tried to do it the following way, but without success.
DECLARE
v_name VARCHAR2(100);
v_email VARCHAR2(100);
TYPE t_tags IS TABLE OF VARCHAR2(100);
v_tags t_tags;
BEGIN
SELECT name, email
INTO v_name, v_email
FROM JSON_TABLE(:body, '$'
COLUMNS (
name VARCHAR2(100) PATH '$.leads.name',
email VARCHAR2(100) PATH '$.leads.email'
);
SELECT CAST(COLLECT(tag) AS t_tags)
INTO v_tags
FROM JSON_TABLE(:body, '$.leads.tags[*]'
COLUMNS (tag VARCHAR2(100) PATH '$'));
IF v_tags IS NOT NULL OR v_tags.COUNT > 0 THEN
FOR i IN 1 .. v_tags.COUNT LOOP
v_tag := v_tags(i);
INSERT INTO LEAD_TAG (TAG, COR, ETQ_CAT)
VALUES ('TESTING', 'TESTING', 'TESTING')
RETURNING ID INTO v_tag_id;
END LOOP;
END IF;
END;
could anyone help me?