Есть задача вставить значения «требования» в таблицу «agg». Скажите, пожалуйста, как я могу это сделать? Текущий код здесь показывает результат только одного из значений, во-первых, чтобы быть конкретным, как я могу заставить его привести все три значения?Вставить несколько значений из xmltable в базу данных
INSERT INTO test
VALUES (4,xmltype (
'<export>
<responsibleOrg>
<regNum>01731000018</regNum>
</responsibleOrg>
<requirements>
<requirement>
<code>8403975</code>
<name>Требование об отсутствии в предусмотренном Федеральным законом № 44-ФЗ реестре недобросовестных поставщиков </name>
</requirement>
<requirement>
<code>8632410</code>
<name>Единые требования к участникам </name>
</requirement>
<requirement>
<code>8361978</code>
<name>Иные дополнительные требования к участникам </name>
</requirement>
</requirements>
</export>'));
DECLARE res NUMBER;
BEGIN
FOR r IN
(
SELECT t.id
FROM test t
)loop
sys.DBMS_OUTPUT.put_line('Номер файла №'|| ' '||r.id);
FOR r2 IN
(
SELECT x.*,k.*
FROM test t,
xmltable('export/responsibleOrg'
passing t.DATA
COLUMNS
regnum varchar2(50) path 'regNum')k,
XMLTABLE ('export/requirements/requirement'
PASSING t.DATA
COLUMNS
code VARCHAR2(100) PATH 'code',
name varchar2(100) path 'name') x
WHERE t.id = 4
)loop
IF r2.regNum IS NOT NULL THEN
SELECT COUNT(*)
INTO res
FROM agg a
WHERE a.regNum = r2.regNum;
IF res = 0 THEN
INSERT INTO agg(REGNUM,code,name)VALUES(r2.regnum,r2.code,r2.name);
END IF;
END IF;
END loop;
END loop;
END;
Не против русских писем, здесь нет никаких команд, написанных с кириллицей.