2016-12-07 6 views
1

하나의 열을 여러 열로 나누기 위해 데이터 형식을 XML로 변경하려고했습니다. 그러나 아래 구문을 실행했을 때 데이터 형식 XML이 표시되지 않았습니다. 나는 온라인에서 몇 가지 답변을 검색했다. Azure가 XML을 지원하는 것 같습니다. 그것을 해결할 방법이 있습니까?MS Azure DB : 'Identity'근처에서 데이터 형식 XML 및 잘못된 구문을 찾을 수 없습니다.

cast('<m>'+replace(Employee_Name,@delimiter,'</m><m>')+'</m>' as XML) 

게다가, 나는 IDENTITY는 (1,1) 중 하나를 지원하지 않는 것을 발견했다.

답변

1

기본 지원이 거기에있다 : STRING_SPLIT()-function가. 그러나 - 링크 doumentation에 따라 - 당신이 값을 검색 할 .nodes().value()이 필요하기 때문에 이것은 푸른 데이터웨어 하우스 ... XML을 통해 문자열 분할은 XML-데이터 형식을 필요로

에 제공되지 않는 것 같다. this documentation에 따르면,이 루프 또는 재귀 열팽창 계수를 사용하여 문자열 분할 기능에 대한 많은 예제가 있습니다

... 데이터웨어 하우스 버전으로 제한 모르겠어요, 푸른 데이터베이스 지원됩니다. This article은 그 중 일부를 비교합니다 ...

+0

으로 읽을 수 있습니다. 안타깝게도 ** Azure DB에서는 ** String_Split() **을 사용할 수 있지만웨어 하우스에서는 사용할 수 없습니다. –

0

이 오류는 Microsoft Azure SQL 데이터웨어 하우스에 로그인 한 상태에서 XML로 쿼리 캐스팅을 실행하려고 할 때 발생합니다. Azure SQL 데이터웨어 하우스는 XML 데이터 유형을 지원하지 않습니다. 다음과 같은 SQL로 버전을 확인할 수 있습니다

선택 @@ 버전 SQL-서버 2016와

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-data-types

+0

광산은 MS SQL Azure 데이터웨어 하우스 2016입니다. 어쨌든 XML을 사용하지 않고 하나의 열을 여러 열로 나누는 솔루션을 알고 있습니까? 아니면 XML 패키지 등을 설치할 수 있습니까? –

+0

xml 대신 varchar를 사용할 수 있습니까? '캐스트 (VARCHAR로 ''+ 교체 (EMPLOYEE_NAME, @ 구분자, '') + '')는' –

+1

@AndrewW'VARCHAR'이는 * 트릭입니다 ...이 경우 도움이되지 것입니다 * 구분 기호를 XML 태그로 바꾸어 문자열을 분할합니다. 'this, is, delimited'는 으로,'이됩니다. XML- 메소드'.nodes()'와'.value()'를 사용하면이 부분을 부분 ... – Shnugo