나는 다음과 같은 형식의 XML 문서가 있습니다. 이 데이터를 SQL Server 테이블에 삽입해야합니다. 내 테이블이 스키마가 : 그래서 나는 XML 열이있는 임시 테이블에 내 xml 파일을 가져온삽입 XML 데이터
CREATE TABLE [dbo].[Questions](
[ImportQuestionID] [int] IDENTITY(1,1) NOT NULL,
[TopicName] [varchar](100) NULL,
[DepartmentName] [varchar](100) NULL,
[ParentDepartmentName] [varchar](100) NULL,
[QuestionID] [int] NOT NULL,
[SurveyID] [int] NOT NULL,
[ResponseID] [int] NOT NULL,
[PageNumber] [int] NOT NULL,
[OrderNumber] [int] NOT NULL,
[Result] [varchar](10) NULL,
[GroupName] [varchar](100) NULL,
[QuestionText] [varchar](500) NOT NULL,
[AnswerText] [varchar](500) NOT NULL,
[Comment] [varchar](500) NULL,
[Reference] [varchar](500) NULL)
을 지금은 파일을 구문 분석하고 관계형 테이블에 넣어 노력하고있어. 여기
내가 노력하고있어입니다 :INSERT INTO [SRCL_XmlTest].[dbo].[Questions]
field list...
SELECT tab.col.value('./topic/@name', 'varchar(100)') as TopicName,
tab.col.value('./topic/department/@name', 'varchar(100)') as DepartmentName,
tab.col.value('./topic/department/@parent', 'varchar(100)') as ParentDepartmentName,
tab.col.value('./topic/department/questionH/@questionID', 'int') as QuestionID,
tab.col.value('./topic/department/questionH/@surveyID', 'int') as SurveyID,
tab.col.value('./topic/department/questionH/@responseID', 'int') as ResponseID,
tab.col.value('./topic/department/questionH/@pageNumber', 'int') as PageNumber,
tab.col.value('./topic/department/questionH/@orderNumber', 'int') as OrderNumber,
tab.col.value('./topic/department/questionH/@result', 'varchar(10)') as ResultColourCode,
tab.col.value('./topic/department/questionH/@group', 'varchar(100)') as GroupName,
tab.col.value('./topic/department/questionH/question', 'varchar(500)') as QuestionText,
tab.col.value('./topic/department/questionH/answer', 'varchar(500)') as AnswerText,
tab.col.value('./topic/department/questionH/comment', 'varchar(500)') as Comment,
tab.col.value('./topic/department/questionH/reference', 'varchar(500)') as Reference
FROM FileImport
CROSS APPLY
XmlData.nodes('//response/topics') AS tab(col)
을하지만, 나는 오류가 계속 : XQuery는 [FileImport.XmlData.value는()는] '값은()'싱글 톤 (또는 빈 시퀀스)가 필요합니다 , 'xdt : untypedAtomic *'유형의 피연산자를 찾았습니다
XML에 여러 주제 노드가 있기 때문입니까? XmlData.nodes ('응답/주제/주제/부서/questionHead/질문') AS 탭 (열)
이제 질문에 액세스 할 수 있지만 ' 답을 찾을 수있는 곳이면 어디든 갈 수 있습니다. 어떤 아이디어가 있니?
중복 : http://stackoverflow.com/questions/1302064/sql-server-2005-xml-query-works-value-requires-singleton-found-xdtuntype –