无法从Oracle数据库CLOB列中提取具有默认名称空间的XML

时间:2019-04-10 01:46:48

标签: xml oracle11g xml-parsing

我正在尝试从Oracle数据库(我们正在使用11g)的CLOB列中存储的xml文件中解析和提取一些值。

经过一些测试,我发现当元素具有一些默认名称空间时,它似乎不起作用。这是一些测试代码。

这段代码不起作用:

create table
 xml_key 
(   mycol number, 
    xml   clob
);

insert into 
   xml_key
values 
( 
   1,
'<?xml version="1.0" encoding="GB2312"?>
 <FpML version="4-2" 
    xmlns="http://www.fpml.org/2005/FpML-4-2">         
  <trade>    
        <equityOption>
        <productType>Digital</productType>          
        <optionType>Call</optionType>           
    </equityOption>
</trade>    
</FpML>');

SELECT XMLTYPE(t.xml).EXTRACT('//optionType/text()').getStringVal(),  
t.xml

FROM  xml_key t;


drop table xml_key   

但是如果我将默认名称空间更改为命名名称空间,例如xmlns:fm="http://www.fpml.org/2005/FpML-4-2" ,它突然起作用。有人对此有经验吗?谢谢!

0 个答案:

没有答案