ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
XML w SQL Server w praktyce
97. Spotkanie PLSSUG Warszawa, 15.06.2016.
Dzi? w programie
Jak to wygl?da i jakie k?ody pod nogi b?dzie nam rzuca?:
?Generowanie XML
?Sprawdzanie poprawno?ci XML
?Wczytywanie XML z pliku
?Zapisywanie XML do pliku
?Wyszukiwanie 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¨®rka
XML w T-SQL
Generowanie ¨C FOR XML
RAW AUTO
EXPLICIT PATH
Wczytywanie z pliku ¨C OPENROWSET BULK
Przetwarzanie - OPENXML
Przetwarzanie - .nodes()
FOR XML
OPENROWSET
OPENXML
.nodes()
XML SCHEMA COLLECTION
Sprawdzamy poprawno?? XML
Kolekcje schemat¨®w
?Pozwalaj? sprawdza? poprawno?? dokument¨®w XML
?Kolekcja to mo?e by? po prostu jeden schemat
?ALTER XML SCHEMA COLLECTION to nie modyfikacja
?Uwaga 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?tli
LET Deklaracja zmiennych
WHERE Filtrowanie
ORDER BY Sortowanie
RETURN Zwracanie
FLWOR (2)
XQUERY
SSIS
Czyli 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 Destination
?Nie ma komponentu XML Destination
??eby zapisa? plik radzimy sobie na kilka sposob¨®w
?Script Task
?Flat File Destination
?File Connection
Script Task
XML + Flat File Destination
SSIS XML
INNE OPCJE?
SQLXML
Kontrolki firm trzecich
TaskFactory ¨C XML Generation Transform (PragmaticWorks)
I to w zasadzie tyle

More Related Content

Viewers also liked (12)

µÚ10ÕÂ (Ðø)ÊÂÎñ
µÚ10ÕÂ (Ðø)ÊÂÎñ µÚ10ÕÂ (Ðø)ÊÂÎñ
µÚ10ÕÂ (Ðø)ÊÂÎñ
hanmo1988
?
Jak szybko przetwarzasz hurtowe ilo?ci XML?
Jak szybko przetwarzasz hurtowe ilo?ci XML?Jak szybko przetwarzasz hurtowe ilo?ci XML?
Jak szybko przetwarzasz hurtowe ilo?ci XML?
Bartosz Ratajczyk
?
µÚ2Õ ¹ØϵÊý¾Ý¿â»ù±¾Ô­Àí
µÚ2Õ  ¹ØϵÊý¾Ý¿â»ù±¾Ô­ÀíµÚ2Õ  ¹ØϵÊý¾Ý¿â»ù±¾Ô­Àí
µÚ2Õ ¹ØϵÊý¾Ý¿â»ù±¾Ô­Àí
hanmo1988
?
µÚ9Õ t sql³ÌÐòÉè¼Æ
µÚ9Õ t sql³ÌÐòÉè¼ÆµÚ9Õ t sql³ÌÐòÉè¼Æ
µÚ9Õ t sql³ÌÐòÉè¼Æ
hanmo1988
?
µÚ1Õ Êý¾Ý¿âϵͳ¸ÅÂÛ
µÚ1Õ   Êý¾Ý¿âϵͳ¸ÅÂÛµÚ1Õ   Êý¾Ý¿âϵͳ¸ÅÂÛ
µÚ1Õ Êý¾Ý¿âϵͳ¸ÅÂÛ
hanmo1988
?
Infografia smart energy managemet services 2.3Infografia smart energy managemet services 2.3
Infografia smart energy managemet services 2.3
jorge navas
?
A beginners guide
A beginners guideA beginners guide
A beginners guide
ASAFI
?
µÚ7Õ Ë÷ÒýºÍÊÓͼ
µÚ7Õ Ë÷ÒýºÍÊÓͼµÚ7Õ Ë÷ÒýºÍÊÓͼ
µÚ7Õ Ë÷ÒýºÍÊÓͼ
hanmo1988
?
Alerty WMI
Alerty WMIAlerty WMI
Alerty WMI
Bartosz Ratajczyk
?
Resiliency in the cloud myths versus facts
Resiliency in the cloud myths versus factsResiliency in the cloud myths versus facts
Resiliency in the cloud myths versus facts
jorge navas
?
Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
Bartosz Ratajczyk
?
µÚ10ÕÂ (Ðø)ÊÂÎñ
µÚ10ÕÂ (Ðø)ÊÂÎñ µÚ10ÕÂ (Ðø)ÊÂÎñ
µÚ10ÕÂ (Ðø)ÊÂÎñ
hanmo1988
?
Jak szybko przetwarzasz hurtowe ilo?ci XML?
Jak szybko przetwarzasz hurtowe ilo?ci XML?Jak szybko przetwarzasz hurtowe ilo?ci XML?
Jak szybko przetwarzasz hurtowe ilo?ci XML?
Bartosz Ratajczyk
?
µÚ2Õ ¹ØϵÊý¾Ý¿â»ù±¾Ô­Àí
µÚ2Õ  ¹ØϵÊý¾Ý¿â»ù±¾Ô­ÀíµÚ2Õ  ¹ØϵÊý¾Ý¿â»ù±¾Ô­Àí
µÚ2Õ ¹ØϵÊý¾Ý¿â»ù±¾Ô­Àí
hanmo1988
?
µÚ9Õ t sql³ÌÐòÉè¼Æ
µÚ9Õ t sql³ÌÐòÉè¼ÆµÚ9Õ t sql³ÌÐòÉè¼Æ
µÚ9Õ t sql³ÌÐòÉè¼Æ
hanmo1988
?
µÚ1Õ Êý¾Ý¿âϵͳ¸ÅÂÛ
µÚ1Õ   Êý¾Ý¿âϵͳ¸ÅÂÛµÚ1Õ   Êý¾Ý¿âϵͳ¸ÅÂÛ
µÚ1Õ Êý¾Ý¿âϵͳ¸ÅÂÛ
hanmo1988
?
Infografia smart energy managemet services 2.3Infografia smart energy managemet services 2.3
Infografia smart energy managemet services 2.3
jorge navas
?
A beginners guide
A beginners guideA beginners guide
A beginners guide
ASAFI
?
µÚ7Õ Ë÷ÒýºÍÊÓͼ
µÚ7Õ Ë÷ÒýºÍÊÓͼµÚ7Õ Ë÷ÒýºÍÊÓͼ
µÚ7Õ Ë÷ÒýºÍÊÓͼ
hanmo1988
?
Resiliency in the cloud myths versus facts
Resiliency in the cloud myths versus factsResiliency in the cloud myths versus facts
Resiliency in the cloud myths versus facts
jorge navas
?

Similar to XML w SQL Server w praktyce (20)

"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?
"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?
"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?
Bartosz Ratajczyk
?
OceanQuery - j?zyk zapyta¨½ edytora raport¨®w
OceanQuery - j?zyk zapyta¨½ edytora raport¨®wOceanQuery - j?zyk zapyta¨½ edytora raport¨®w
OceanQuery - j?zyk zapyta¨½ edytora raport¨®w
matmis
?
Liquibase w praktyce
Liquibase w praktyceLiquibase w praktyce
Liquibase w praktyce
Mateusz Luba¨½ski
?
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
HighWheelSoftware
?
Transact-SQL. Czarna ksi?ga
Transact-SQL. Czarna ksi?gaTransact-SQL. Czarna ksi?ga
Transact-SQL. Czarna ksi?ga
Wydawnictwo Helion
?
Micha? Dec - Quality in Clouds
Micha? Dec - Quality in CloudsMicha? Dec - Quality in Clouds
Micha? Dec - Quality in Clouds
kraqa
?
Optymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETOptymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NET
Bartlomiej Zass
?
Mts 2013 tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...
Mts 2013   tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...Mts 2013   tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...
Mts 2013 tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...
Tomasz Kopacz
?
PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...
PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...
PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...
PROIDEA
?
SQLDay2011_Sesja02_Collation_Marek Adamczuk
SQLDay2011_Sesja02_Collation_Marek AdamczukSQLDay2011_Sesja02_Collation_Marek Adamczuk
SQLDay2011_Sesja02_Collation_Marek Adamczuk
Polish SQL Server User Group
?
Poca?unek ?mierci
Poca?unek ?mierciPoca?unek ?mierci
Poca?unek ?mierci
Divante
?
Czwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawyCzwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawy
Mariusz Koprowski
?
VirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting ServicesVirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting Services
SSAS.PL
?
Sql day2015 fts
Sql day2015 ftsSql day2015 fts
Sql day2015 fts
Kamil Nowinski
?
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
twitch.tv/katmpb
?
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentation
Mariusz Koprowski
?
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
Kamil Grabowski
?
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
?ukasz Grala
?
Ajax. ?wiczenia
Ajax. ?wiczeniaAjax. ?wiczenia
Ajax. ?wiczenia
Wydawnictwo Helion
?
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
Tomasz Cieplak
?
"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?
"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?
"Administrator z przypadku" - Jak dzia?a SQL Server i jak o niego dba?
Bartosz Ratajczyk
?
OceanQuery - j?zyk zapyta¨½ edytora raport¨®w
OceanQuery - j?zyk zapyta¨½ edytora raport¨®wOceanQuery - j?zyk zapyta¨½ edytora raport¨®w
OceanQuery - j?zyk zapyta¨½ edytora raport¨®w
matmis
?
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
HighWheelSoftware
?
Micha? Dec - Quality in Clouds
Micha? Dec - Quality in CloudsMicha? Dec - Quality in Clouds
Micha? Dec - Quality in Clouds
kraqa
?
Optymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETOptymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NET
Bartlomiej Zass
?
Mts 2013 tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...
Mts 2013   tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...Mts 2013   tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...
Mts 2013 tomasz kopacz - wydajno?? aplikacji dla windows 8 - jak j? mierzy?...
Tomasz Kopacz
?
PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...
PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...
PLNOG16: Nowe za?o?enia dla zbieranie log¨®w, statystyk i alert¨®w, Maciej Ka?k...
PROIDEA
?
Poca?unek ?mierci
Poca?unek ?mierciPoca?unek ?mierci
Poca?unek ?mierci
Divante
?
Czwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawyCzwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawy
Mariusz Koprowski
?
VirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting ServicesVirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting Services
SSAS.PL
?
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
twitch.tv/katmpb
?
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentation
Mariusz Koprowski
?
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
?ukasz Grala
?
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
Tomasz Cieplak
?

More from Bartosz Ratajczyk (11)

SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
Bartosz Ratajczyk
?
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
Bartosz Ratajczyk
?
Jak dzia?a rekurencyjne CTE?
Jak dzia?a rekurencyjne CTE?Jak dzia?a rekurencyjne CTE?
Jak dzia?a rekurencyjne CTE?
Bartosz Ratajczyk
?
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
Bartosz Ratajczyk
?
Zautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSIS
Zautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSISZautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSIS
Zautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSIS
Bartosz Ratajczyk
?
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Bartosz Ratajczyk
?
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
Bartosz Ratajczyk
?
Po co mi Temporal Tables?
Po co mi Temporal Tables?Po co mi Temporal Tables?
Po co mi Temporal Tables?
Bartosz Ratajczyk
?
Co to te CTE?
Co to te CTE?Co to te CTE?
Co to te CTE?
Bartosz Ratajczyk
?
O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?
Bartosz Ratajczyk
?
Czy mi si? przyda hierarchyid?
Czy mi si? przyda hierarchyid?Czy mi si? przyda hierarchyid?
Czy mi si? przyda hierarchyid?
Bartosz Ratajczyk
?
SQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze kroki
Bartosz Ratajczyk
?
OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
Bartosz Ratajczyk
?
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
Bartosz Ratajczyk
?
Zautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSIS
Zautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSISZautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSIS
Zautomatyzuj sw¨®j proces wdra?ania projekt¨®w SSIS
Bartosz Ratajczyk
?
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Bartosz Ratajczyk
?
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
Bartosz Ratajczyk
?

XML w SQL Server w praktyce

Editor's Notes

  • #13: ALTER XML SCHEMA COLLECTION pozwala tylko na dodanie elementu do kolekcji, nie pozwala usun?? lub zamieni? Uwaga przy powi?zywaniu: np. parametr procedury zwi?zany ze schematem ¨C przy DROP XML SCHEMA COLLECTION musimy od??czy? schemat z ka?dego elementu (albo kolumn?) Schematy ¨C jak pisz? na blogach - przyspieszaj? te? przetwarzanie XML (shredding i wyszukiwanie)
  • #28: File Connection ¨C np. dla XML Task
  • #30: OLE_SRC potrzebuje obej?cia