Oracle
幫助 - SQL 查詢 // 從 XML 中提取 // 如果沒有找到數據則會出錯
我正在建構一個查詢,從 XML 中提取值。如果 xml 有值,我會得到輸出。但是,如果沒有找到 xml 出現錯誤,我需要幫助以“尚未獲得”或其他內容填充這些列。
以下是範例查詢:
Select Column1,Column2,Column3,Column4, extractvalue(xmltype(column5), '/PymtInit:notifyOutwardCrdtTrnsfrStatusReq/') "Response", Extractvalue(Xmltype(Responsemsg) From Table.Name where column5 is not null;
注意:如果我給 Column5 is not null,我會得到輸出,但我也需要沒有“column5 is not null”的輸出。
您是否嘗試過在列表中而不是在子句中檢查是否
column5
為 NULL ?我認為提供 NULL是您錯誤的根源。SELECT``WHERE``xmltype()
Select Column1,Column2,Column3,Column4, CASE WHEN column5 IS NOT NULL THEN extractvalue(xmltype(column5), '/PymtInit:notifyOutwardCrdtTrnsfrStatusReq/') ELSE 'No Value Yet' END as "Response", Extractvalue(Xmltype(Responsemsg)) From Table.Name where column5 is not null;
我還在
SELECT
列表的第六列中添加了右括號;您可能還想給該列一個別名。注意:不是 Oracle 的常客,對他們的 XML 工具沒有經驗;只需應用標準 SQL。當然,也未經測試。