Discussions
Categories
- 197.1K All Categories
- 2.5K Data
- 546 Big Data Appliance
- 1.9K Data Science
- 450.7K Databases
- 221.9K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 552 MySQL Community Space
- 479 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.1K ORDS, SODA & JSON in the Database
- 555 SQLcl
- 4K SQL Developer Data Modeler
- 187.2K SQL & PL/SQL
- 21.3K SQL Developer
- 296.3K Development
- 17 Developer Projects
- 139 Programming Languages
- 293K Development Tools
- 110 DevOps
- 3.1K QA/Testing
- 646.1K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 158 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.2K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 19 Java Essentials
- 162 Java 8 Questions
- 86K Java Programming
- 81 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 205 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 468 LiveLabs
- 39 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 175 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 233 Portuguese
XQuery insert node with XMLTYPE

Andrey Borodin
Member Posts: 1 Red Ribbon
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0
Why is this SQL not delete a node t[class=1]?
declare vQuery clob; pioResultXML xmltype := xmltype(' <Root> <tlist> <t><class>1</class></t> <t><class>2</class></t> </tlist> </Root> '); begin vQuery := ' copy $tmp := $src modify (insert node $AdditionalFinInfo as first into $tmp/Root , delete nodes $tmp/Root/tlist/t[class=1] ) return $tmp'; SELECT XMLQuery(vQuery passing pioResultXML as "src", xmltype('<NewNode/>') as "AdditionalFinInfo" RETURNING content) INTO pioResultXML FROM dual; dbms_output.put_line(pioResultXML.getclobval); end;
Result
<Root><NewNode/><tlist><t><class>1</class></t><t><class>2</class></t></tlist></Root>
If change order in xquery to
delete nodes $tmp/Root/tlist/t[class=1] ) return $tmp' , insert node $AdditionalFinInfo as first into $tmp/Root
everything works well
Also deletting node like delete nodes $tmp/Root/tlist/t without filter work correctly.
Tagged: