Hallo zusammen,
ich habe ein Problem, wo ich trotz intensiver Suche im Internet und div. Büchern noch keine Lösung gefunden habe.
Ich habe eine Oracle 10g, wo ich im XML-DB-Repository im Public-Ordner eine xml-Datei (Test.xml) abgelegt habe (per WebDAV). Die Test.xml wird im Windows-Explorer auch angezeigt und eine Abfrage mit "select count(*) from xdb.XDB$RESOURCE" zeigt mir auch an, dass ein Datensatz hinzugefügt wurde. Soweit so gut.
Jetzt habe ich in der DB auch einige XML-Schemas registriert, wobei ein Schema (Testschema) zur Test.xml passt. Normalerweise erfolgt die Referenzierung automatisch beim Upload der Datei in das XML-DB-Repository, vorausgesetzt, es ist in der Test.xml ein entsprechender Eintrag "xsi:schemaLocation" enthalten, der auf das richtige Schema verweist. Da das bei meiner Datei nicht der Fall ist, muss ich sie "von Hand" mit dem Schema referenzieren um sie dann anschließend objektrelational zu speichern.
Meine Tabelle, wo die Datei gespeichert werden soll, heißt "bmecatimport_new".
Laut meinen Recherchen müsste es so funktionieren:
insert into "bmecatimport_new"
values (xmltype('hier kommt der XML-Text rein').createschemabasedxml('Testschema'));
Jetzt kommt allerdings der Haken...
Meine XML-Dateien sind z.T. sehr groß (bis 1GB) und enthalten einige Sonderzeichen (z.B. "&") welche bei den SQL-Statements zu Fehlern führen, da sie ja reservierte Zeichen sind.
Daher kann ich die Datei auch nicht als Text in das Statement übergeben, sondern möchte z.B. per Pfad auf die Datei verweisen.
Weiß jemand, wie das geht oder gibt es eine alternative Lösung für das importieren von großen XML-Dateien, die objektrelational mit Schemareferenzierung gespeichert werden sollen?
Vielen Dank im voraus.
MfG
Daniel
ich habe ein Problem, wo ich trotz intensiver Suche im Internet und div. Büchern noch keine Lösung gefunden habe.
Ich habe eine Oracle 10g, wo ich im XML-DB-Repository im Public-Ordner eine xml-Datei (Test.xml) abgelegt habe (per WebDAV). Die Test.xml wird im Windows-Explorer auch angezeigt und eine Abfrage mit "select count(*) from xdb.XDB$RESOURCE" zeigt mir auch an, dass ein Datensatz hinzugefügt wurde. Soweit so gut.
Jetzt habe ich in der DB auch einige XML-Schemas registriert, wobei ein Schema (Testschema) zur Test.xml passt. Normalerweise erfolgt die Referenzierung automatisch beim Upload der Datei in das XML-DB-Repository, vorausgesetzt, es ist in der Test.xml ein entsprechender Eintrag "xsi:schemaLocation" enthalten, der auf das richtige Schema verweist. Da das bei meiner Datei nicht der Fall ist, muss ich sie "von Hand" mit dem Schema referenzieren um sie dann anschließend objektrelational zu speichern.
Meine Tabelle, wo die Datei gespeichert werden soll, heißt "bmecatimport_new".
Laut meinen Recherchen müsste es so funktionieren:
insert into "bmecatimport_new"
values (xmltype('hier kommt der XML-Text rein').createschemabasedxml('Testschema'));
Jetzt kommt allerdings der Haken...
Meine XML-Dateien sind z.T. sehr groß (bis 1GB) und enthalten einige Sonderzeichen (z.B. "&") welche bei den SQL-Statements zu Fehlern führen, da sie ja reservierte Zeichen sind.
Daher kann ich die Datei auch nicht als Text in das Statement übergeben, sondern möchte z.B. per Pfad auf die Datei verweisen.
Weiß jemand, wie das geht oder gibt es eine alternative Lösung für das importieren von großen XML-Dateien, die objektrelational mit Schemareferenzierung gespeichert werden sollen?
Vielen Dank im voraus.
MfG
Daniel
Zuletzt bearbeitet: