数据类型不一致:应该-尝试使用XMLTable时得到ORA-00932

时间:2019-05-17 06:24:40

标签: sql xml oracle xml-parsing

我正在尝试查询一个表,其中的列之一在嵌套XML中具有大量数据。我一直在使用EXTRACTVALUE()函数来显示一对一字段,但是也有许多一对多字段需要使用不同的方法。

经过一番搜索,我发现了XMLTABLE()函数似乎很合适,但是我收到了一条不一致数据类型的错误消息,即使列数据类型是XMLTYPE也无法解决。

数据库版本为Oracle Database 12c企业版12.1.0.2.0版-64位

以下是XML的示例:

<QuoteData>
    <DataCat1>
        <ProductDistribution>
            <Details>
                <Name>Product1</Name>
                <Amount>24</Amount>
                <Price>100</Price>
            </Details>
            <Details>
                <Name>Product2</Name>
                <Amount>50</Amount>
                <Price>200</Price>  
            </Details>
        </ProductDistribution>
    </DataCat1>
</QuoteData>

我的查询是:

select 

q.PROD_NAME,
q.PRICE

from DB_PROD_TBL r, xmltable('/QuoteData'
    passing r.PROD_LINE_DATA 
    columns
     PROD_NAME varchar2(50) path '/DataCat1/ProductDistribution/Details/Name',
     PRICE number path '/DataCat1/ProductDistribution/Details/Price')q;

0 个答案:

没有答案