Oracle

幫助 - SQL 查詢 // 從 XML 中提取 // 如果沒有找到數據則會出錯

  • September 18, 2018

我正在建構一個查詢,從 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。當然,也未經測試。

引用自:https://dba.stackexchange.com/questions/217936