2013-12-16 4 views
1

XML을 clob로 저장 한 testclob 열을 갖는 TRAPTABCLOB 테이블의 sql을 사용하여 Decision 값을 추출하고 싶습니다. DB2 IN db2에서 SQL을 사용하여 XML Clob에서 데이터 추출

샘플 XML로 XMLTABLE()를 사용하는 방법에 대한 좋은 일들

<?xml version="1.0" encoding="UTF-8"?> 
<DCResponse> 
    <Status>Success</Status> 
    <Authentication> 
     <Status>Success</Status> 
    </Authentication> 
    <ResponseInfo> 
     <ApplicationId>5701200</ApplicationId> 
     <SolutionSetInstanceId> 
         63a5c214-b5b5-4c45-9f1e-b839a0409c24 
        </SolutionSetInstanceId> 
     <CurrentQueue /> 
    </ResponseInfo> 
    <ContextData> 
     <!--Decision Details Start--> 
     <Field key="SoftDecision">A</Field> 
     <Field key="**Decision**">1</Field> 
     <Field key="NodeNo">402</Field> 
     <Field key="NodeDescription" /> 
     <!--Decision Details End--> 
     <!--Error Details Start--> 
     <Field key="ErrorResponse"> 
      <Response> 
       <Status>[STATUS]</Status> 
       <ErrorCode>[ERRORCODE]</ErrorCode> 
       <ErrorDescription>[ERRORDESCRIPTION]</ErrorDescription> 
       <Segment>[SEGMENT]</Segment> 
      </Response> 
     </Field> 
     <Field key="ErrorCode">0</Field> 
     <Field key="ErrorDescription" /> 
    </ContextData> 
</DCResponse> 

답변

4

하나는 하위 쿼리로 사용하거나 테이블 또는 다른 SQL에 가입 할 수있는 표현을 생산하는 것입니다 아래 표현.

SELECT x.decision 
FROM traptabclob, XMLTABLE(
    '$d/DCResponse/ContextData[1]' PASSING XMLPARSE(DOCUMENT testclob) AS "d" 
    COLUMNS 
    DECISION CHAR(1) PATH 'Field[@key="**Decision**"][1]' 
) AS x 
; 
+0

'XMLPARSE (DOCUMENT testclob) AS "d"를'testclob'로 단순화 할 수 있습니다. – Hogan

관련 문제