このカスタムSQLスクリプトをUmbracoデータベースに改善する方法を見つけるのに苦労しています。XMLを高速に解析するこのSQL関数を作成するにはどうすればいいですか?
がDECLARE @Title nvarchar(1000)
SET @Title =
(SELECT @NodeXml.query('//TechnicalData/title').value('.', 'nvarchar(max)') Title
FROM cmsContentXml xt JOIN umbracoNode un ON un.id = xt.NodeId
WHERE xt.nodeId = @NodeId)
SELECT iif(CHARINDEX('"values":null', @Title,0) > 0,'',Substring(@Title, 21, CHARINDEX('}', @Title) - 22)) Title
部分XMLは次のとおりです。:
<?xml version="1.0"?>
<TechnicalData id="1261" key="b6a2f67a-0f0f-40dd-a3c6-c5fb9d8b78b9" parentID="1092" level="3" creatorID="0" sortOrder="12" createDate="2016-07-14T13:56:37" updateDate="2016-07-15T12:06:25" nodeName="Rioolkolken Type 1 Drainerend via de zijwanden" urlName="rioolkolken-type-1-drainerend-via-de-zijwanden" path="-1,1089,1092,1261" isDoc="" nodeType="1154" creatorName="admin" writerName="Karl" writerID="1" template="1085" nodeTypeAlias="TechnicalData">
<title>{"values":{"nl-BE":"Rioolkolken Type 1 Drainerend via de zijwanden"},"dtdGuid":"f2dfa88e-63b9-4913-80cd-64d770cef90e"}</title>
</TechnicalData>
これはの唯一のごく一部である。ここ
が取得し、XMLを解析し、正しい値を選択するために、SQLスクリプトですスクリプト。 TechnicalDataには約20個のノードがあり、すべてを解析する必要があります。 hereこのカスタムスクリプトの理由は、私がssrsレポートでUmbracoサイトを拡張する必要があったためです。あなたは何度も何度もあなたのXMLのうち、情報の1つのビットを取るため
使用するSQL Serverのバージョンは? 'title'の内容はSQL Server 2016のJSONで、' parseJSON'を使用することができます – gofr1
私は知っていますが、2012年のインストールです。この質問に遭遇する他の人のために+1 –