XML w SQL Server w praktyce

Post on 14-Apr-2017

126 views 0 download

Transcript of XML w SQL Server w praktyce

XML w SQL Server w praktyce

97. Spotkanie PLSSUG Warszawa, 15.06.2016.

Dziś w programieJak to wygląda i jakie kłody pod nogi będzie nam rzucać:

Generowanie XMLSprawdzanie poprawności XMLWczytywanie XML z plikuZapisywanie XML do plikuWyszukiwanie danych w dokumentach XML

Zarówno w T-SQL jak i SSIS

Kto głównie skorzysta?„Robiłem jakieś pierwsze próby i tyle”„Miałem projekt, ale ostatecznie zrobiliśmy w .NET”„Próbowałem coś zrobić w SSIS, ale były z tym problemy”„Księgowość coś mówiła o JPK, ale odłożyliśmy na później”

Bartosz Ratajczyk

Konsultant SQL Server

Programista baz danych i aplikacji

MCSE: Data Platform, MCT

http://bartekr.net | b.ratajczyk@gmail.com

Krótka powtórkaXML w T-SQL

Generowanie – FOR XMLRAW AUTO

EXPLICIT PATH

Wczytywanie z pliku – OPENROWSET BULK

Przetwarzanie - OPENXML

Przetwarzanie - .nodes()

FOR XML

OPENROWSET

OPENXML

.nodes()

XML SCHEMA COLLECTIONSprawdzamy poprawność XML

Kolekcje schematówPozwalają sprawdzać poprawność dokumentów XMLKolekcja to może być po prostu jeden schematALTER XML SCHEMA COLLECTION to nie modyfikacjaUwaga przy powiązywaniu z parametrami typu XML

Tworzenie kolekcji schematów

XML SCHEMA COLLECTION

XML VALIDATION

XQuery.nodes(), .query(), .modify(), .value(), .exist(), FLWOR

.nodes(), .value(), .exist()

.modify()

.query()

FLWOR (1)FOR Iteracja w pętliLET Deklaracja zmiennychWHERE FiltrowanieORDER BY SortowanieRETURN Zwracanie

FLWOR (2)

XQUERY

SSISCzyli zabawa klockami

XML Task

Diff Patch Merge XSLT XPath Validate

Control Flow

XML Source (1)

Data Flow

XML Source (2)

XML Source (3)

http://blog.hoegaerden.be/2011/04/20/loading-complex-xml-using-ssis/

XML DestinationNie ma komponentu XML DestinationŻeby zapisać plik radzimy sobie na kilka sposobów

Script TaskFlat File DestinationFile Connection

Script Task

XML + Flat File Destination

SSIS XML

INNE OPCJE?

SQLXML

Kontrolki firm trzecich

TaskFactory – XML Generation Transform (PragmaticWorks)

I to w zasadzie tyle