W SQL Server jest łatwy do analizowania zmiennej vachar który zawiera prostą XML fragment zbudowany z atrybutami i załadować go do tabeli temp - patrz poniższy przykład:Jak analizować prosty fragment kodu XML w Oracle PL/SQL i załadować go do globalnej tabeli tymczasowej?
declare @UpdateXML VARCHAR(8000)
set @UpdateXML='<ArrayOfRecords>
<Record Field01="130" Field02="1700" Field03="C" />
<Record Field01="131" Field02="1701" Field03="C" />
<Record Field01="132" Field02="1702" Field03="C" />
</ArrayOfRecords>'
DECLARE @hdoc int
EXEC sp_xml_preparedocument @hdoc OUTPUT, @UpdateXML
INSERT
INTO #tblTemp(
[Field01],
[Field02],
[Field03]
)
SELECT *
FROM OPENXML(@hdoc, '//ArrayOfRecords/Record')
WITH (Field01 int,
Field02 int,
Field03 char(1)
)
EXEC sp_xml_removedocument @hdoc
Czy istnieje prosty przykład, który robi równowartość tego w Oracle PL/SQL?
W Oracle istnieje pakiet DBMS_XMLSTORE, ale chce fragmentu XML w określonym kanonicznym formacie, używając elementów ROWSET i ROW. DBMS_XMLSTORE nie działa z atrybutami XML.
Ponadto, nie jestem w 100% pewien, czy muszę utworzyć XSD z mojego fragmentu XML i zarejestrować go w bazie danych Oracle, zanim będę mógł użyć dowolnego z innych narzędzi/zapytań XML/XML PL/SQL.
Dzięki!
+1. Bardzo prawdziwe. Jest tak wiele opcji i nie wiesz, który z nich pasuje do którego. – Guru