Oracle 10g: Lesen von XML-Werten aus Clob mit XMLSequence und ExtractValue

Ich fange an zu fühlen, ein bisschen dim. Ich habe gelesen, eine Menge von web-Seiten und versucht, eine Reihe von Methoden, etwas zu tun, scheint relativ einfach.

Habe ich einige XML gespeichert, die eine Tabelle. Die Tabelle enthält eine ID und die XML-Daten in einem CLOB. So etwas wie:

ID = 1

<?xml version="1.0" encoding="UTF-8" ?>
<CricketGame xmlns="http://www.somewhere.com/cricket/2002/09" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="2002A" xsi:type="CricketGame" >
<TeamInfo TeamId="WestCountry" />
<SessionInfo SessionId="XhRya5m999988888" RestartSession="false" />
<Errors>
<Error ErrorText="Generic Error" ErrorCode="700" SupplierErrorText="Connection: DECLINED" />
<Error ErrorText="Generic Error" ErrorCode="701" SupplierErrorText="Account Error" />
</Errors>
</CricketGame>

Ich habe versucht, verwenden Sie eine Kombination von Extrakt und XMLSequence um eine Tabelle zu erstellen und dann extractvalue zu Holen Sie sich die spezifischen Werte aus ErrorText, ErrorCode und SupplierErrorText. Meine SQL:

SELECT 
extractvalue(value(p), '/Error/@ErrorText') as errText,
extractvalue(value(p), '/Error/@ErrorCode') as errCode,
extractvalue(value(p), '/Error/@SupplierErrorText') as supErrText
FROM gamestable  s, 
  Table(
    XMLSequence(
    extract(xmltype(s.xml), '/CricketGame/Errors/Error')
    )
  ) p
where 
s.gameID = 1

SQL nicht wieder irgendwelche Fehler, aber nicht die Daten zurück, die entweder.

Kann jemand sehen, was ich falsch mache? Werde ich über diese völlig falsch? Ist es vielleicht etwas zu tun mit dem xmlns?

Vielen Dank im Voraus!

InformationsquelleAutor HCC | 2012-09-12

Schreibe einen Kommentar