2014-04-08 33 views
0

爲什麼意外的結果 「存在」, 「extractValue一起」 和 「不爲空」

SELECT 1 FROM dual where extractvalue(xmltype('<A>1</A>'),'A') IS not NULL 

回報1

SELECT count(*) 
FROM dual 
WHERE EXISTS 
    (
    SELECT 1 FROM dual where extractvalue(xmltype('<A>1</A>'),'A') IS not NULL 
); 

返回0?

編輯:通過與提取物代替extractValue一起,我拿1 ...

+3

你的第二個查詢返回1給我。 – Noel

+0

這是我的版本(select * from v $ version),我得到了0: Oracle數據庫11g版本11.2.0.2.0 - 64位生產 PL/SQL版本11.2.0.2.0 - 生產 「核心\t 11.2 .0.2.0 \t生產「 適用於Linux的TNS:版本11.2.0.2.0 - 生產 NLSRTL版本11.2.0.2.0 - 生產 – yohannc

回答

1

extractvalue已被棄用

你可以試試這個:

SELECT count(*) 
FROM (select '<A>1</A>' as data from dual),xmltable('A' passing xmltype(data) columns result varchar2(1028) path '.') 
WHERE 
result is not null;