2012-11-28 14 views
14

से एसक्यूएल का उपयोग कर एक्सएमएल क्लोब से डेटा निकालें, मैं टेबल TRAPTABCLOB से एसक्यूएल का उपयोग करके निर्णय का मूल्य निकालना चाहता हूं जिसमें क्लॉब के रूप में संग्रहीत एक्सएमएल के साथ कॉलम टेस्टक्लोब है।ओरेकल डेटाबेस

नीचे नमूना एक्सएमएल।

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

उत्तर

21

प्रयास करें

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

Here एक sqlfiddle डेमो

+0

हाय .. मुझे एक ही समस्या है। क्या आप मेरी मदद कर सकते हैं। एसक्यूएल फिडल काम नहीं करता है। – Teja

+0

@SOaddict, यह अब काम करता है ... –

+0

ग्रेट यह अब काम करता है .. मैं पूरी सामग्री कैसे निकाल सकता हूं और इसे फ़ाइल में कैसे कर सकता हूं? – Teja

2

यह काम करना चाहिए

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

मैं मान लिया है ** थे बस के लिए पर प्रकाश डाला?

+0

काम नहीं कर रहा - हो रही ओरा-00932 त्रुटि। एबीकेड द्वारा समाधान पूरी तरह से काम किया। – user1859050