Analysieren von xml in der gespeicherten Prozedur in oracle
Ich habe eine Liste, die eine Liste mit type-Eigenschaft (Adresse) drin. Ich bin das senden der ganzen Daten als xml in der Datenbank zu aktualisieren/einfügen die details in meinem oracle-Tabelle.
Hier ist das xml-format
DECLARE
x XMLType := XMLType( '
<person>
<row>
<name>Tom</name>
<Address>
<LocalAddress>
<State>California</State>
<City>Los angeles</City>
</LocalAddress>
<LocalAddress>
<State>California1</State>
<City>Los angeles1</City>
</LocalAddress>
</Address>
</row>
<row>
<name>Jim</name>
<Address>
<LocalAddress>
<State>California</State>
<City>Los angeles</City>
</LocalAddress>
</Address>
</row>
</person>');
v_person_name varchar2(1000);
v_city varchar2(1000);
BEGIN
FOR xmlrow IN
(SELECT column_value AS xml
FROM TABLE(XMLSequence(x.extract('/person/row')))
)
LOOP
SELECT extractValue(xmlrow,'/row/name/text()')
INTO v_person_name
FROM dual;
DBMS_OUTPUT.put_line(v_person_name);
FOR address IN
(SELECT column_value AS xml
FROM TABLE(xmlsequence(xmlrow.extract('/row/Address/LocalAddress')))
)
LOOP
-- extract address values same as above.
SELECT extractValue(xmlrow,'/LocalAddress/City/text()')
INTO v_city
FROM dual;
DBMS_OUTPUT.put_line(v_city);
END LOOP;
END LOOP;
END;
Wie kann ich parse das ganze xml in oracle? Ich schicke diese als xmltype-variable.
Es ist mir eine comilation Fehler
Error report -
ORA-06550: line 35, column 27:
PLS-00382: expression is of wrong type
ORA-06550: line 35, column 14:
PL/SQL: ORA-00932: inconsistent datatypes: expected - got -
ORA-06550: line 35, column 7:
PL/SQL: SQL Statement ignored
ORA-06550: line 41, column 37:
PLS-00302: component 'EXTRACT' must be declared
ORA-06550: line 41, column 37:
PLS-00302: component 'EXTRACT' must be declared
ORA-06550: line 41, column 30:
PL/SQL: ORA-00904: "XMLROW"."EXTRACT": invalid identifier
ORA-06550: line 40, column 7:
PL/SQL: SQL Statement ignored
ORA-06550: line 45, column 29:
PLS-00382: expression is of wrong type
ORA-06550: line 45, column 16:
PL/SQL: ORA-00932: inconsistent datatypes: expected - got -
ORA-06550: line 45, column 9:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
Mir bitte helfen diese zu lösen.
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin in der Lage zu analysieren, die verschachtelte xml mit dieser Methode
Wie Sie mit Hilfe der XML-Typ, ich nehme an, Sie müssen den Zugriff auf die einzelnen tags und deren Werte. Unten ist ein Beispiel bit-code, wählen Sie den Namen aus jeder Zeile Ihrer XML-Struktur vor. Hinweis: xml_in ist nur ein Variablenname für die xmltype-Variablen in der gespeicherten Prozedur.
Wenn Sie tun müssen, verschachtelte analysieren, können Sie auch tun: