Ho una semplice query:Inserimento di un nodo figlio in una colonna XMLTYPE
WITH xtbl AS (
SELECT XMLTYPE ('<a><b>1</b></a>') AS xcol
FROM DUAL
)
SELECT XMLQUERY ('copy $tmp := .
modify
insert node <c>2</c>
into $tmp/a/b
return $tmp'
PASSING xcol
RETURNING CONTENT) AS newxcol
FROM xtbl;
Quello che sto cercando di fare è di inserire un nodo <c>
dopo <b>
all'interno del nodo <a>
ma Oracle 12c sta gettando questo errore :
ORA-19114: XPST0003 - error during parsing the XQuery expression:
LPX-00801: XQuery syntax error at 'EOF'
5 -
-^
voglio l'uscita come:
NEWXCOL
-------------
<a>
<b>1</b>
<c>2</c/>
</a>
Ho provato a cercare in Oracle Docs per una sostituzione di appendChildXML
e seguire quell'esempio, ma ho ricevuto solo l'errore.
So che è molto semplice e mi manca qualcosa di ovvio. Per favore aiuto.
umm, sei sicuro di utilizzare almeno Oracle Database 12c Release 1? Il tuo messaggio di errore indica chiaramente che XQuery Update non è supportato. In base alla documentazione a cui è collegato è stato introdotto con la versione precedente. Quindi, quale versione di Oracle stai usando? – dirkk
@dirkk, sto usando Oracle 12.1.0.1. Ho aggiornato l'errore che sto ottenendo. – Rachcha
La tua query va bene. Hai semplicemente dimenticato la chiusura del tag per il nodo da aggiungere (''). Inoltre, per ottenere il risultato desiderato, il percorso target deve essere '$ tmp/a' non il' $ tmp/a/b'. –