Ich habe diese Tabelle in Oracle SQL Developer erstelltErster XML aus einer Tabelle in SQL erstellt
CREATE TABLE Test_T (
COL_1 VARCHAR(30),
COL_2 XMLTYPE
);
Und haben diese eingefügt hinein
INSERT INTO Test_T VALUES ('two', ('<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
<PLANT>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
<ZONE>3</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$9.37</PRICE>
<AVAILABILITY>030699</AVAILABILITY>
</PLANT></CATALOG>'));
Mein Ziel ist die < COMMON zurückzukehren> Name </GEMEINSAM> NUR WO die Zone 3 oder WENIGER ist. Also sollte dies Columbine
zurückgeben.
Ich dachte über die Verwendung von XMLExists Ich bin nicht so vertraut mit XML, also das ist, was ich bisher hatte.
SELECT COL_2 FROM Test_T WHERE XMLExists('//ZONE[COL_2 <= 3]' PASSING BY REF COL_2);
Ich bin mir nicht sicher, ob ich auf die ZONE richtig zugreife.
Könnte jemand mich in die richtige Richtung führen?
Welche DBMS verwenden Sie? – eftpotrm
@eftpotrm, Tut mir leid. Mit Oracle SQL Developer –