기본적으로 가짜 XML이 포함 된 CLOB 열이 있습니다. 보통 XML 문서와 같은 부모 자식 구조를 따르지 않기 때문에 가짜라고합니다.oracle 데이터베이스에서 특정 clob 데이터를 가져 오려고 시도합니다.
Heres는 내 CLOB의 샘플 :
<retryDetails>
<numberOfRetries>0</numberOfRetries>
<isToDoEntrySuppressed>false</isToDoEntrySuppressed>
</retryDetails>
<interimStatus>D1DS</interimStatus>
<completionDetail>
<updateStatusDateTime>2017-07-06-15.24.14</updateStatusDateTime>
<completionEventDataArea>false</completionEventDataArea>
<servicePointCompletionDetails>
<servicePointDataDetails/>
</servicePointCompletionDetails>
<messageCompletionInformation/>
<installDataDetails/>
<ctCheck>
<currentTransformerDetails/>
</ctCheck>
<vtCheck>
<voltageTransformerDetails/>
</vtCheck>
<existingDevice>
<deviceCompletionDetails>
<deviceDataDetails/>
<readingCompletionDetails>
<readingDetails/>
</readingCompletionDetails>
</deviceCompletionDetails>
<itemCompletionDetails>
<itemDataDetails/>
</itemCompletionDetails>
<meterTestDataDetails/>
<meterDataDetails/>
</existingDevice>
<newDevice>
<deviceCompletionDetails>
<deviceDataDetails/>
<readingCompletionDetails>
<readingDetails/>
</readingCompletionDetails>
</deviceCompletionDetails>
<itemCompletionDetails>
<itemDataDetails/>
</itemCompletionDetails>
<meterDataDetails/>
<currentTransformerDetails/>
<voltageTransformerDetails/>
</newDevice>
<completionInformation>
<customerContactDetails/>
<remarkTypes/>
<grantExtensionDetails/>
<paymentDetails/>
</completionInformation>
</completionDetail>
<responseDetail>
<message>
<taskId>01327329221115</taskId>
<hostExternalId>01327329221115</hostExternalId>
<taskType>D1-ServiceInvestigation</taskType>
<completionDateTime>2017-07-06-15.24.14</completionDateTime>
<completedByCrew>Successfully Issued a work to CREW=E04393</completedByCrew>
<messageId>01327329221115</messageId>
<completionInformation>
<dispatchDateTime>2017-07-06-15.24.14</dispatchDateTime>
<customerContactDetails/>
<remarkTypes/>
</completionInformation>
<utilityCompletionInformation>
<servicePointCompletionDetails>
<servicePointDataDetails>
<servicePointId>741788842119</servicePointId>
</servicePointDataDetails>
</servicePointCompletionDetails>
<existingDevice>
<meterCompletionDetails>
<verificationDetails>
<response>
<readingDetails/>
</response>
</verificationDetails>
<meterDataDetails/>
<readingCompletionDetails>
<readingDetails/>
</readingCompletionDetails>
</meterCompletionDetails>
<itemCompletionDetails>
<verificationDetails>
<response>
<readingDetails/>
</response>
</verificationDetails>
<itemDataDetails/>
</itemCompletionDetails>
</existingDevice>
<newDevice>
<meterCompletionDetails>
<verificationDetails>
<response>
<readingDetails/>
</response>
</verificationDetails>
<meterDataDetails/>
<readingCompletionDetails>
<readingDetails/>
</readingCompletionDetails>
</meterCompletionDetails>
<itemCompletionDetails>
<verificationDetails>
<response>
<readingDetails/>
</response>
</verificationDetails>
<itemDataDetails/>
</itemCompletionDetails>
</newDevice>
</utilityCompletionInformation>
</message>
<fault/>
</responseDetail>
내가, select 문에,이 데이터 혼란에 특정 노드를 꺼내하는 방법을 알아낼 할 일은 특히 "completedByCrew"필요 노드.
나는이 방법을 시도 -SELECT XMLQUERY('/root/retryDetails/numberOfRetries/text()'
PASSING xmltype(to_clob('<root>') ||
A.BO_DATA_AREA ||
'</root>') RETURNING CONTENT) AS RESULT
FROM CISADM.D1_COMM_IN A
을하지만 재시 노드의 수지나 갈 때, 정보가 반환 중지 그냥 널 간다. 어떤 아이디어?
예제 clob을 전혀 사용할 수 없습니다. XML 구문 분석 오류가 발생합니다. "LPX-00245 : 문서 끝에 추가 데이터가 있습니다."http://sqlfiddle.com/#!4/34ecd/1 – kfinity