- Goal
XMLファイルからテーブルの要素を抜き出して、INSERTしたい。
SQLServer バージョン
- How
xqueryを使って実施。This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersDECLARE @xml as XML --temp Manual set SET @xml = CAST('<Logs> <LogDateEntry date="01/01/2017"> <Details time="05:16:26" Type="GET" subject="TEST1" details="This is test" value="50" target="SERVER1" /> <Details time="05:16:35" Type="PUT" subject="TESTSE" details="aseasdfasdfa" value="125" target="SERVER3" /> <Details time="05:25:24" Type="PUT" subject="ddddd" details="asdfasdfasdfsafdsafdasdfasfdsadfasdf" value="1524" target="SERVER1" /> <Details time="05:45:23" Type="GET" subject="asdfasdfasdfasdfasfdsafd" details="asdfasfdsafdasfdasdfasdfasdfasdfasdfasdfsa" value="12" target="SERVER1" /> </LogDateEntry> </Logs>' as XML) --Insert --insert into TEST_LOG(DATE,TIME,alertType,subject,details,value,target,creation_date) --select select CONVERT(VARCHAR(50),TLOG.c.query('data(..//@date)')) as DATE , CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@time)')) as TIME , CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@Type)')) as AT , CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@subject)')) as SUB , CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@details)')) as details , CONVERT(NUMERIC(18,3),CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@value)'))) as value , CONVERT(VARCHAR(100),TLOG.c.query('data(.//@target)')) as target , getdate() from @xml.nodes('/Logs/LogDateEntry/Details') as TLOG(c) GO
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
2017/02/08
XMLファイルからテーブルへのINSERT
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿