Sembra che si stia parlando di 2 problemi - prima, ottenendo il documento XML in cui Oracle può vederlo. E poi forse facendo in modo che gli strumenti relazionali standard possano essere applicati ai dati.
Per il primo, tu o il tuo DBA potete creare una tabella con una colonna BLOB, CLOB o BFILE e caricare i dati. Se si ha accesso al server su cui risiede il database, è possibile definire un oggetto DIRECTORY nel database che punta a una directory del sistema operativo. Quindi metti il tuo file lì. E quindi configurarlo come BFILE o leggerlo. (CLOB e BLOB memorizzano nel database; BFILE memorizza un file puntato su un sistema operativo).
In alternativa, utilizzare uno strumento che consenta di scrivere direttamente CLOB nel database. Ad ogni modo, questo ti porta al punto in cui puoi vedere il documento di istanza XML nel database.
Quindi ora il documento di istanza è visibile. Il passaggio 1 è fatto.
A seconda della versione, Oracle ha alcuni strumenti piuttosto buoni per distruggere l'XML in tabelle relazionali.
Può essere piuttosto dichiarativo. Mentre questo va al di là di ciò che ho effettivamente fatto (ho un progetto in cui lo proverò in autunno), puoi teoricamente caricare il tuo schema XML nel database e annotarlo con il crosswalk tra le tabelle relazionali e l'XML. Quindi prendi il tuo CLOB o BFILE e convertilo in una colonna XMLTYPE con lo schema definito e il gioco è fatto - la distruzione avviene automaticamente, i dati sono tutti lì, è tutto relazionale, è tutto disponibile per SQL standard senza XQUERY o XML estensioni.
Ovviamente, se preferisci usare XQUERY, prendi semplicemente CLOB o BFILE, convertilo in XMLTYPE e vai a prenderlo.
fonte
2009-06-16 16:10:46
In realtà c'era un buon blog di Marco Gralike su shredding nel database, http://www.liberidu.com/blog/?p=1094 –