2012-02-20 4 views
2

XML 데이터를 저장하는 SQLite 데이터베이스에 NVARCHAR 열이 있습니다. SQLite 쿼리에서 XML 요소를 제거해야합니다. 나는 XML 문서의 Enqid 요소를 제거 할 필요가SQLite XML SUBSTRING

<Inspection> 
<Enquiry> 
</Enquiry> 
<Enqid>282256</Enqid> 
<TargetDate>16/12/2011</TargetDate> 
</Inspection> 

- :

열 XMLDATA는 다음과 같은 XML이 포함됩니다.

부분 문자열을 사용할 수는 있지만 <Enqid>의 색인 위치를 먼저 찾아야합니다.

추가 라이브러리없이 표준 SQLite를 사용하고 있습니다. 정말 SQLite는 쿼리에 있어야합니다 경우

+1

난 그냥 SQLite는이 INSTR를 지원하지 않습니다 발견을 MyTable, substr_index, 위치, charIndex의도 다른 문자열 위치 기능에서 (( – Aprillion

답변

1

, 내가 할 수있는 수동으로 모든 문자열을 나열보다 더 나은 아무것도없는 것은 다음과 같이 밖으로 제거한다 :

replace(replace(xmldata, 
'<Enquiry> 
</Enquiry> 
', ''), 
'<second_element></second_element>', '') 
as "stripped xmldata" 
+0

난 당신이 WRO 거 같아요 스틱이 끝나면, 태그를 지우지 말아야합니다. 그래서 나는 단지 노드 만 선택할 수 있어야합니다. –

+0

오 .. 왜 당신의 예에서 비어 있지? 난 절대적으로 아무 생각 * SQLite에서 : (*) – Aprillion

+0

해당 Enqid 내가 필요 없음 문의. –

1

당신이

을 LIKE 사용하여 시도 되세요

은 선택 * XMLDATA LIKE '282256'가

+0

이 작동하지만 것만 원하는 다시 괜찮아요 전체 XMLDATA 열을 선택합니다 있지만 작동하지 않을 것이다. XMLDATA 열에서 XML 데이터의 일부만 검색하려는 경우 –