我正在生成一个非常大的数据集到XML文件中以发送到外部Web服务。此文件大约为20兆字节,并且在文件中唯一一行的字符18995504附近有一个验证错误。
DECLARE @Text nvarchar(MAX)
SET @Text = (SELECT xml FROM (...) multiLeveledQueryFromHell)
SET @Text = '<root xmlns="urn:examplenamespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:schemaname urn:schemaurl">' + @Text + '</root>'
EXECUTE WriteToFile(@Filename, @Text)
从xml到nvarchar(MAX)的转换为我留下了<root ...><elements>...</elements></root>
之类的字符串。我想在多行选项卡版本中获取它
<root ...>
<elements>
...
</elements>
</root>
如何使用SQL Server本身或使用最少的新工具?
答案 0 :(得分:1)
这个小小的C#片段能够快速有效地在SQL Server外部进行转换。也许可以通过SQL Server中的CLR程序集直接处理Xml数据类型来完成某些事情。
static void Main(string[] args)
{
XmlTextReader reader = new XmlTextReader(Console.In);
XmlTextWriter writer = new XmlTextWriter(Console.Out);
writer.Formatting = Formatting.Indented;
XmlDocument document = new XmlDocument();
document.Load(reader);
document.WriteTo(writer);
reader.Close();
writer.Close();
}
答案 1 :(得分:0)
我猜你必须自己遍历xml并添加CHAR(13)+ CHAR(10) 如果您只需要一个或两个文件(换句话说,您不需要以编程方式执行此操作),则可以使用Visual Studio。粘贴XML并按:CTRL + K,CTRL + D