23. oktober 2009 - 15:58Der er
9 kommentarer og 1 løsning
XML filer til database
Hej alle, jeg har et par filer som dagligt skal lægges ind i database, hver med en størrelse på ca 35 MB. XML filerne ligger som BLOB (CLOB virkede af en eller anden mystisk grund ikke med vores 3.parts software som lægger filerne ind) Jeg forestiller mig at lave en staging tabel som hiver BLOB'en ind i noget nogle XMLType tabeller, hvorefter jeg kan stage ud i nogle live tabeller.
jeg har to spørgsmål: 1 er det overhoved muligt og/eller smart at gøre på denne måde? 2 hvordan får man rent praktisk en BLOB over i en XMLtype tabel (og hvordan strukturerer man den)?
Hvis dig som svarer på dette kan lægge et par nemme demo eksempler ud på spm.#2 ville det være til stor hjælp.
Jeg har aldrig brugt XMLType, men som jeg kan læse mig til at det en kolonne type ikke en tabel type.
re 1)
Så vidt jeg kan læse mig til vil en XMLType kolonne giver nogle ekstra muligheder i forhold til BLOB bl.a. mulighed for brug af XPath uden at det har nogen ulemper. Det lyder derfor som en god ide.
SELECT extractValue(p.OBJECT_VALUE, '/enfinity/offer/sku') "SKU" FROM xml_table p WHERE existsNode(p.OBJECT_VALUE,'/enfinity/offer["sku=TOM9V00101"]') = 1; returnerer bare 'null' nogle gode ideer?
SELECT extractValue(p.OBJECT_VALUE, '/enfinity/offer/sku') "SKU" FROM xml_table p returnerer : 'null'
SELECT extractValue(p.OBJECT_VALUE, '/enfinity/offer/sku') "SKU" FROM xml_table p WHERE existsNode(p.OBJECT_VALUE,'/enfinity/offer["sku=TOM9V00101"]') = 1;
returnerer intet, ingen rækker vælges.
for mig tyder det på at den ikke læser dokumentet korrekt. får også kun et 'null' som svar på dette:
SELECT extractValue(p.OBJECT_VALUE, '//offer') "offer" FROM xml_table p
så der er et eller andet helt galt....(der er mange offer's).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.