2017-10-26 5 views
-2

Ich habe die folgende XML. Ich möchte das Gewicht als 2KG in XML zur Laufzeit in Oracle PLSQL aktualisieren. wie geht das ?Wie aktualisiert man den XML-Feldwert zur Laufzeit?

<XML><FRUIT_SHOP>AZHAGIRI</FRUIT_SHOP> 
<FRUITS> 
<FRUIT> 
<FRUIT_NAME>ORANGE</FRUIT_NAME> 
<ORANGE_FIELDS> 
<FIELD> 
<KEY>COLOUR</KEY> 
<VALUE>LIGHT_RED</VALUE> 
</FIELD> 
<FIELD> 
<KEY>WEIGHT</KEY> 
<VALUE>1KG</VALUE> 
</FIELD> 
</DETAIL> 
</ORANGE_FIELDS> 
</FRUIT> 
</FRUITS> 

Erwartet

<XML><FRUIT_SHOP>AZHAGIRI</FRUIT_SHOP> 
<FRUITS> 
<FRUIT> 
<FRUIT_NAME>ORANGE</FRUIT_NAME> 
<ORANGE_FIELDS> 
<FIELD> 
<KEY>COLOUR</KEY> 
<VALUE>LIGHT_RED</VALUE> 
</FIELD> 
<FIELD> 
<KEY>WEIGHT</KEY> 
<VALUE>2KG</VALUE> 
</FIELD> 
</DETAIL> 
</ORANGE_FIELDS> 
</FRUIT> 
</FRUITS> 

Oracle plsql Block sollte das tun?

+1

Hallo Kumpel, was hast du versucht bis jetzt? –

+0

Warum möchten Sie PL/SQL anstelle von SQL verwenden? Woher kommt das XML und wohin geht es - aktualisieren Sie beispielsweise einen in einer Tabelle gespeicherten Wert? Wie auch immer, [starten Sie mit der Dokumentation] (https://docs.oracle.com/database/121/ADXDB/xdb04cre.htm#ADXDB512), oder die vielen Beispiele auf dieser und anderen Seiten; Wenn du hängen bleibst, zeige, wie weit du gekommen bist und was falsch ist. –

Antwort

1

verwenden Nur SQL:

SQL Fiddle

Oracle 11g R2 Schema Einrichtung:

CREATE TABLE table_name (xml_column) AS 
SELECT XMLTYPE('<XML> 
<FRUIT_SHOP>AZHAGIRI</FRUIT_SHOP> 
<FRUITS> 
    <FRUIT> 
    <FRUIT_NAME>ORANGE</FRUIT_NAME> 
    <ORANGE_FIELDS> 
     <FIELD><KEY>COLOUR</KEY><VALUE>LIGHT_RED</VALUE></FIELD> 
     <FIELD><KEY>WEIGHT</KEY><VALUE>1KG</VALUE></FIELD> 
    </ORANGE_FIELDS> 
    </FRUIT> 
</FRUITS> 
</XML>') 
FROM DUAL; 

UPDATE table_name 
SET xml_column = UPDATEXML(
    xml_column, 
    '/XML/FRUITS/FRUIT/ORANGE_FIELDS/FIELD/KEY[text()="WEIGHT"]/../VALUE/text()', 
    '2KG' 
); 

Abfrage 1:

SELECT t.xml_column.getClobVal() 
FROM table_name t 

Results:

|    T.XML_COLUMN.GETCLOBVAL() | 
|------------------------------------------| 
| <XML> 
    <FRUIT_SHOP>AZHAGIRI</FRUIT_SHOP> 
    <FRUITS> 
    <FRUIT> 
     <FRUIT_NAME>ORANGE</FRUIT_NAME> 
     <ORANGE_FIELDS> 
     <FIELD> 
      <KEY>COLOUR</KEY> 
      <VALUE>LIGHT_RED</VALUE> 
     </FIELD> 
     <FIELD> 
      <KEY>WEIGHT</KEY> 
      <VALUE>2KG</VALUE> 
     </FIELD> 
     </ORANGE_FIELDS> 
    </FRUIT> 
    </FRUITS> 
    </XML> 
+0

Danke für Ihre Hilfe. Noch ein Zweifel ... –

Verwandte Themen