2010-07-30 5 views
2

외부 웹 서비스에 보낼 XML 파일에 매우 큰 데이터 집합을 생성하고 있습니다. 이 파일은 약 20 메가 바이트이며 파일의 유일한 행의 문자 18995504 근처에 유효성 검증 오류가 있습니다.공백을 사용하여 SQL Server XML 데이터 형식을 nvarchar로 변환하는 방법

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) 

NVARCHAR에 XML에서 변환 (MAX)는 <root ...><elements>...</elements></root> 같은 문자열로 날을 남긴다. 복수 줄 탭 버전으로 가져오고 싶습니다.

<root ...> 
    <elements> 
    ... 
    </elements> 
</root> 

SQL Server를 단독으로 사용하거나 최소한의 새로운 도구로 어떻게합니까?

답변

1

이 작은 조각의 C#은 SQL Server 외부로의 변환 작업을 빠르고 효율적으로 수행했습니다. 어쩌면 XML 데이터 유형을 직접 처리하는 SQL Server 내부의 CLR 어셈블리로 수행 할 수있는 작업이있을 수 있습니다.

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(); 
} 
0

xml을 반복하여 CHAR (13) + CHAR (10)을 추가해야합니다. 파일 하나 또는 두 개만 필요하면 (다시 말하면 programatically 할 필요는 없습니다), Visual Studio를 사용할 수 있습니다. XML 붙여 넣기 및 누르기 : CTRL + K, CTRL + D

+0

불행하게도, 20 메가 길이의 한 줄로 파일을 열려고하면 Visual Studio가 중단됩니다. 나는 그것이 그들이 계획하거나 시험 한 어떤 것이 아닌 것으로 의심한다. –

+0

Hehe, 그럼 프로그래밍 방식으로 갈 것입니다 :-) –

관련 문제