read getstringval getclobval generar extractvalue existsnode ejemplos desde sql xml oracle parsing clob

sql - getstringval - xml getclobval oracle



Extraiga datos de XML Clob utilizando SQL de Oracle Database (2)

Quiero extraer el valor de Decision utilizando sql de la tabla TRAPTABCLOB que tiene la columna testclob con XML almacenado como clob.

Muestra XML como a continuación.

<?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>


Esto debería funcionar

SELECT EXTRACTVALUE(column_name, ''/DCResponse/ContextData/Decision'') FROM traptabclob;

¿He supuesto que ** era solo para destacar?


Tratar

SELECT EXTRACTVALUE(xmltype(testclob), ''/DCResponse/ContextData/Field[@key="Decision"]'') FROM traptabclob;

Aquí hay una demo de sqlfiddle