그럼 TYPE).value('.','NVARCHAR(max)')
은요? FOR XML PATH
의
기본은 당신은 SO (예를 들어 1, 또는 2)에 질문/답변을 많이 찾을 수 있습니다.
TYPE
지시어에 초점을 맞 춥니 다.
이
SELECT
[text()]=dt.x+';'
FROM
(
VALUES('text > blabla'),
('text < blabla'),
('f&m')
) AS dt(x)
FOR XML
PATH('');
결과는 다음과 같습니다 : 파생 테이블 dt
의 문자열을 연결 다음 T-SQL 문을 고려
text > blabla;text < blabla;f&m;
당신은 >
, <
및 &
가 치환되는 것을 확인할 수 있습니다 >
, <
및 &
. 특수 문자 (XML 미리 정의 된 엔터티)가 대체됩니다.
TYPE
지정 문을 지정하여이 기능을 비활성화 할 수 있습니다.이 지시문을 텍스트가 아닌 XML로 내 보낸 다음 XML에서 문자열 값을 가져옵니다. 결과 XML에서이 문자열 값을 가져 오는 방법은 value()
메서드를 사용하여 수행 할 수 있습니다.
위의 예에서 TYPE
지시어를 사용 :
SELECT
(
SELECT
[text()]=dt.x+';'
FROM
(
VALUES('text > blabla'),
('text < blabla'),
('f&m')
) AS dt(x)
FOR XML
PATH(''), TYPE
).value('.','NVARCHAR(MAX)');
당신은 얻을 것이다 :
text > blabla;text < blabla;f&m;
당신은 XML 특수 문자가 대체되지 않는 것을 볼 수 있습니다.
[SQL Server에서의 작업 및 XML 경로 사용 방법] (https://stackoverflow.com/questions/31211506/how-stuff-and-for-xml-path-work-in-sql)의 가능한 복제본 -server) –
@ KenY-N 왜 내 데이터베이스에서 제대로 실행될 수 있습니까? –
저는 새로운 초보자이므로 올바른 정보를 얻고 싶습니다. –