Oracle 10g:从XML中提取数据(select)(CLOB类型)

mym*_*ark 13 xml oracle oracle10g ora-00932

我是甲骨文的新手,而且我 - 也许是微不足道的 - 选择中的一个问题.(我正在使用Oracle 10g Express Edition).

我有一个带字段CLOB的数据库:mytab.xml这个列有一个像这样的XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<info>
<id> 954 </id>
<idboss> 954 </idboss>
<name> Fausto </name>
<sorname> Anonimo </sorname>
<phone> 040000000 </phone>
<fax> 040000001 </fax>
</info>
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行"简单"选择,例如,获取'fax'标签的值.但我有点问题,我无法理解我的错误.例如:

select extract(xml, '//fax').getStringVal() from mytab;
ORA-00932: inconsistent datatypes: expected - got

select extract(xmltype(xml), '//fax').getStringVal() from mytab;
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 254
Run Code Online (Sandbox Code Playgroud)

我也试过'extractvalue',但我遇到了同样的问题.我做错了哪里?

dog*_*ane 29

试试这个:

select xmltype(t.xml).extract('//fax/text()').getStringVal() from mytab t
Run Code Online (Sandbox Code Playgroud)