有一項任務是將'require'的值插入到表'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;
不介意俄羅斯信件,這裏沒有任何用西里爾文寫的命令。