Încărcarea datelor în format xml pe serverul SQL

5.3 Încărcarea datelor XML într-o bază de date SQL Server

Încărcarea datelor în format XML pe SQL Server, procedură stocată sp _ xml _ preparedocument. funcția OPENXML, XML pentru instrumentele SQL (SQLXML 3.0), obiect SQLXMLBulkLoad. încărcarea datelor în format XML către SQL Server din scriptul VBScript

De obicei, dacă ați implementat schimbul de date în format XML. atunci este necesar nu numai să încărcați date în documente XML din bazele de date SQL Server. dar și să le încarci înapoi. Schema generală arată astfel:

1) Obținem conținutul documentului XML. Aceasta se face prin intermediul aplicației care execută descărcarea. Cea mai ușoară cale este de a scrie un script WSH. de exemplu:

2) în continuare - deja în învelișul corpului procedura stocată myProcImportXml genera reprezentarea ierarhică internă a documentului XML folosind sistemul procedură stocată sp _ xml _ preparedocument

3) În continuare, în aceeași funcție de utilizare myProcImportXml OpenXML pentru a genera în RowSet memorie - tabel un set de înregistrări din fișierul XML. Cu comenzile XPath (o limbă specială pentru navigarea documentelor XML), puteți filtra în plus ce se întâmplă în ROWSET.

4) Mai mult, lucrăm cu ROWSET-ul creat ca și cu masa obișnuită (doar temporară). Cel mai adesea, datele de acolo folosind INSERT inserate în tabele existente pe server sau de a folosi SELECT INTO - în tabelele generate automat.

Cu toate acestea, în practică, o astfel de schemă de utilizat este aproape imposibil - din cauza restricțiilor impuse de tipurile de date de variabile în TSQL. În exemplele Microsoft, variabilele de tip Varchar sunt utilizate cu o lungime maximă de 8000 octeți. Desigur, în practică, majoritatea documentelor XML vor fi mai mari de 8 KB. Prin urmare, se recomandă să utilizați în schimb obiecte instrumente software TSQL, de exemplu, incluse într-un set de instrumente XML pentru SQL (SQLXML 3.0) - pentru ei vor fi discutate mai jos. După instalare, în special, puteți utiliza obiectul programului SQLXMLBulkLoad. care foarte rapid și convenabil încarcă date în format XML către server. Codul scriptului corespunzător poate arăta astfel: