我的“命名空間”空間有問題 :-) - 我不知道如何在 select 陳述句的 xquery 部分中添加參考以將節點添加到 xml(xmltype 變數):
DECLARE
xmldoc XMLTYPE;
vQuery CLOB;
BEGIN
SELECT xmltype ('<envelope xmlns="hal:icl:01">
<sender>
<name>name</name>
<country>CT</country>
<address>first part</address>
<address>second part</address>
<sender_identifier>abc1</sender_identifier>
<sender_eddress>
<sender_agent>y1</sender_agent>
<sender_mailbox>code</sender_mailbox>
</sender_eddress>
</sender>
</envelope>') INTO xmldoc FROM DUAL;
vQuery := ' copy $tmp := $src modify (insert node $Additional as last into $tmp/envelope) return $tmp';
SELECT XMLQUERY (vQuery PASSING xmldoc AS "src", XMLTYPE ('<cbs_extra><emailId></emailId><organizationUnit></organizationUnit></cbs_extra>') AS "Additional" RETURNING CONTENT) INTO xmldoc FROM DUAL;
DBMS_OUTPUT.put_line (XMLDOC.getclobval ());
END;
任何人都可以給我一個輸入?
問候,E。
uj5u.com熱心網友回復:
您需要宣告一個默認元素命名空間:
vQuery := 'declare default element namespace "hal:icl:01";
copy $tmp := $src modify (insert node $Additional as last into $tmp/envelope) return $tmp';
db<>小提琴
正如@LukeWoodward 指出的那樣,您當前的附加 XML 將使用空名稱空間覆寫它,因此您可能希望在其中包含相同的名稱:
XMLTYPE ('<cbs_extra xmlns="hal:icl:01"><emailId></emailId><organizationUnit></organizationUnit></cbs_extra>') AS "Additional"
db<>小提琴
使用此方法在最終 XML 中復制了名稱空間,但這無關緊要。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512763.html
