이 포럼에 처음 게시 된 이후 처음으로 게시했습니다.SQL Server 2008R2 및 XML 문서 작성
다음 쿼리는 올바른 XML 문서를 @xTempXML 변수 (xml 유형)에 올바르게 할당합니다. 참고 : 문서의 길이 (VARCHAR (최대) = 711
select @xTempXML = (
select
PrescriberFirstName as "row/prescriber/name/first",
PrescriberLastName as "row/prescriber/name/last",
PrescriberAddress1 as "row/prescriber/address/line1",
PrescriberAddress2 as "row/prescriber/address/line2",
PrescriberCity as "row/prescriber/address/city",
PrescriberState as "row/prescriber/address/state",
PrescriberZipCode as "row/prescriber/address/zipcode",
PatientFirstName as "row/patient/name/first",
PatientLastName as "row/patient/name/last",
PatientMiddleName as "row/patient/name/middle",
PatientAddress1 as "row/patient/address/line1",
PatientAddress2 as "row/patient/address/line2",
PatientCity as "row/patient/address/city",
PatientState as "row/patient/address/state",
PatientZipCode as "row/patient/address/zipcode",
PatientFileID as "row/patient/fileid",
PatientSSN as "row/patient/ssn",
PatientDOB as "row/patient/dob",
DrugDescription as "row/medicationprescribed/description",
DrugStrength as "row/medicationprescribed/strength",
DrugDEASchedule as "row/medicationprescribed/deaschedule",
DrugQty as "row/medicationprescribed/qty",
DrugDirections as "row/medicationprescribed/directions",
DrugFormCode as "row/medicationprescribed/form",
DrugDateWritten as "row/medicationprescribed/writtendate",
DrugEffectiveDate as "row/medicationprescribed/effectivedate",
DrugRefillQty as "row/medicationprescribed/refill/qty",
DrugRefillQtyQualifier as "row/medicationprescribed/refill/qualifier",
DrugNote as "row/medicationprescribed/note",
PharmacyStoreName as "row/pharmacy/storename",
PharmacyIdentification as "row/pharmacy/identification",
PharmacyAddress1 as "row/pharmacy/address/line1",
PharmacyAddress2 as "row/pharmacy/address/line2",
PharmacyCity as "row/pharmacy/address/city",
pharmacyState as "row/pharmacy/address/state",
pharmacyZipCode as "row/pharmacy/address/zipcode"
from
Rxarchive
where [email protected]
and CreatedDT between @RptParamStartDT and @RptParamStopDT
and CHARINDEX(',' + PrescriberFID + ',', ',' + @RptParamFID + ',') > 0
FOR XML PATH(''), ROOT('result'), TYPE
)
declare @sXMLVersion varchar(max) = '<?xml version="1.0" encoding="utf-8"?>'
select len(@sXMLVersion + convert(varchar(max),@xTempXML))
주 변환 :. 올바른지 연결된 스트링 = 749의 길이
set @xFinalXML = convert(xml,(@sXMLVersion + CAST(@xTempXML as varchar(max))))
select LEN(convert(varchar(max),@xFinalXML))
참고 : 길이 이 변수는
select @xFinalXML
변수가 여전히 유효한 XML 문서, 단지 어떤 버전 정보입니다! 다시 711입니다
내가 뭘 잘못 했니?
모든 도움을 주시면 대단히 감사하겠습니다.
멋진 캐치 # 1,하지만 그 빈 셀 것 왜하지 않는 유효한 것이 아니다 XML 선언문? 몸을 잃어 버렸어! # 2의 경우 최종 결과물은 XML – Kurt
이어야합니다. 필자가 언급 한 동일한 게시물에서이 파일을 제거하고 어떻게 든 앞으로 나아가 계속 연결하고 변환하여 잃어 버렸습니다. Duhh !! 우수한 반응에 감사드립니다. – Kurt