假設ADO_DATA
是XMLType的類型,你的當前查詢因爲您的valueXML
節點具有您需要包含在XPath中的名稱空間,或者使用通配符,所以不會返回任何值:
SELECT EXTRACTVALUE (IT.ADO_DATA, '/*:valueXML/*:IndividualADO/*:ado-name') "REFERENCE"
FROM ITEM_ADO IT;
REFERENCE
--------------------------------------------------------------------------------
LIMS
但extractvalue()
被去除;你可以做同樣的an XQuery:
select xmlquery(
'/*:valueXML/*:IndividualADO/*:ado-name/text()'
passing ado_data
returning content) as reference
from item_ado;
REFERENCE
--------------------------------------------------------------------------------
LIMS
還是用默認的命名空間而不是通配符(和顯示CTE用於測試):
with item_ado (ado_data) as (
select xmltype('<valueXML xmlns="com.ado" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<IndividualADO>
<ado-name>LIMS</ado-name>
<field>
<ado-field-name>ADO_LIMS_LIMS_Custodian_First_Name</ado-field-name>
<ado-field-value xsi:nil="true"/>
</field>
</IndividualADO>
</valueXML>') from dual
)
select xmlquery(
'declare default element namespace "com.ado"; (: :)
/valueXML/IndividualADO/ado-name/text()'
passing ado_data
returning content) as reference
from item_ado;
REFERENCE
--------------------------------------------------------------------------------
LIMS
會發生什麼事,當您運行查詢?你有錯誤,或只是沒有你期望的結果?什麼數據類型是ASO_DATA列? –
當我執行上面的查詢和ADO_DATA的數據類型是XML TYPE – girish