[英]Extract data from XML Clob using SQL from Oracle Database
我想使用 sql 從具有列 testclob 的表 TRAPTABCLOB 中提取 Decision 的值,其中 XML 存儲為 clob。
樣本 XML 如下。
<?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>
嘗試
SELECT EXTRACTVALUE(xmltype(testclob), '/DCResponse/ContextData/Field[@key="Decision"]')
FROM traptabclob;
這是一個sqlfiddle演示
這應該工作
SELECT EXTRACTVALUE(column_name, '/DCResponse/ContextData/Decision') FROM traptabclob;
我認為**只是為了突出顯示?
如果您在使用 XMLTYPE 短語時遇到問題,請嘗試以下操作:
SELECT EXTRACTVALUE(XMLPARSE(DOCUMENT textClob), '/DCResponse/ContextData/Field[@key="Decision"]') FROM traptabclob;
這通常是因為列 textClob 的格式無效 XML。XMLParse 從 value_expr 的計算結果解析並生成一個 XML 實例。 請參見XMLPARSE,Oracle 數據庫在線文檔 11g,第 2 版 (11.2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.