'agg'テーブルに 'requirement'の値を挿入するタスクがあります。どうすればいいの?現在のコードは、値のうちの1つだけの結果を示しています。最初のものは具体的なものです。どのようにして3つの値すべてを得ることができますか?データベースに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;
ここではキリル文字で書かれたコマンドはありません。