일반 텍스트 열의 데이터를 xml 열로 변환해야합니다. 그러나 모든 내용이 유효한 XML이 아니므로 잘못된 XML이있는 행을 무시해야합니다. 일종의 인라인 조건부 변환 또는 WHERE 절의 무언가를 사용하여 잘못된 데이터를 필터링 할 수있는 방법이 있습니까?SQL Server : 인라인 조건부 XML로 변환 하시겠습니까?
1
A
답변
1
XML 데이터 용으로 ISNUMERIC 버전의 기능이 필요한 것 같습니다.
유감스럽게도 이러한 내장 함수는 존재하지 않는다 - 당신이 당신의 자신의 대안을 고안해야 할 것이다 있도록하는 몇 가지 옵션이 있습니다 :이의 일회성 또는 작은 규모의 과정 인 경우
당신은 닷넷이 마음에 드시면
DECLARE xmlCur CURSOR FOR
SELECT textcol
FROM inputTable
OPEN xmlCur
DECLARE @string nvarchar(MAX)
DECLARE @xml xml
FETCH NEXT FROM xmlCur into @string
WHILE @@fetch_status = 0
BEGIN
BEGIN TRY
SET @xml = CAST(@string AS XML)
-- Do something with XML
END TRY
BEGIN CATCH
-- log failure/mark source row as invalid
END CATCH
FETCH NEXT FROM xmlCur into @string
END
CLOSE xmlCur
DEALLOCATE xmlCur
을 다른 방법 : 성능은 (검증되지 않은) 유효하지 않은 캐스트를 처리하는 TRY...CATCH
블록을 사용하여 커서 내부에 한 번에 입력 테이블을 하나의 행을 처리 할 수있는, 중요하지 않습니다 프로그래밍 (그리고 서버에서 사용 가능)을 사용하면 CLR을 사용하여 자신의 IsXML 기능을 만들 수 있습니다. .NET 코드는 this thread의 세 번째 게시물보다 훨씬 복잡 할 필요가 있습니다.
CLR 솔루션의 성능이 커서보다 좋지 않을 수 있습니다.이를 확인하려면 테스트해야합니다.
TRY...CATCH
블록 내에서 필드를 XML로 캐스팅하려고하는 스칼라 값의 T-SQL 함수이지만 함수 내에서 TRY...CATCH
은 사용할 수 없습니다.
+0
커서 솔루션은 이미 수행 한 작업이므로 기개 : D –
관련 문제
- 1. PDF를 XML로 변환 하시겠습니까?
- 2. Java SGML에서 XML로 변환 하시겠습니까?
- 3. SQL 결과 집합을 XML로 변환
- 4. SQL Server 조건부 그룹 작성자
- 5. 쉘 스크립트에서 문자열을 xml로 변환 하시겠습니까?
- 6. C# mdb 솔루션을 xml로 변환 하시겠습니까?
- 7. 조건부 PIVOT/변환 문제
- 8. docX를 사용자 정의 XML로 변환
- 9. Linq에서 XML로 XML 속성을 XML로 변환
- 10. SQL Server 2008의 조건부 WHERE 절
- 11. SQL Server - 조건부 조인이 null이 아닌 테이블에
- 12. SQL Server - 조건부 문의 쿼리 실행 계획
- 13. SQL Server 조건부 외래 키 제약
- 14. SQL Server StoredProc 대 UDF 인라인 테이블
- 15. reportviewer 데이터를 xml로 변환
- 16. 양식 데이터를 XML로 변환
- 17. 레거시 SGM을 XML로 변환
- 18. PHP에서 XML로 CSV 변환
- 19. xsd에서 xml로 변환 도움말?
- 20. Java에서 XML로 변환
- 21. 텍스트를 xml로 변환
- 22. xml로 변환 Excel
- 23. 오브젝트를 xml로 변환
- 24. 오브젝트를 XML로 변환 코코아
- 25. 구성 파일을 XML로 변환
- 26. JTree를 XML로 변환
- 27. sql server 2008 수학 변환
- 28. SQL Server 2000을 2005로 변환
- 29. SQL Server Express 2005 .mdf를 2008 .mdf로 변환 하시겠습니까?
- 30. SQL Server 데이터베이스를 SQL Server Compact 데이터베이스로 변환. 등 뒤로
어떤 버전의 SQL Server입니까? –
SQL 2005 15char –