【发布时间】:2020-07-01 18:18:21
【问题描述】:
您好,我有一个 xml 字符串,我想将其解析为表。问题是当我在 xml 中有多个子类别时,它会引发异常。
[错误] 执行 (27: 35):ORA-19279: XPTY0004 - XQuery 动态类型不匹配:预期的单例序列 - 得到多项序列
MasaPersonelUrunleri, MasaPersonel 可以不止一个。当我在下面编写单个查询时,每个查询都有效,但是当我再添加一个元素时,它会引发错误。怎样才能解决问题?
select *
FROM XMLTABLE('/Masa'
PASSING
xmltype('
<Masa>
<ID>0</ID>
<SICIL>60950</SICIL>
<TARIH>2020-03-20T17:00:03</TARIH>
<IS_KERZZ>0</IS_KERZZ>
<MASA>
<MasaPersonel>
<SICIL>60950</SICIL>
<AD_SOYAD>Test User</AD_SOYAD>
<TOTAL>0</TOTAL>
<MASA_ID>0</MASA_ID>
<RESERVATION_ID>0</RESERVATION_ID>
<ID>0</ID>
<URUNLER>
<MasaPersonelUrunleri>
<ID>0</ID>
<ADET>1</ADET>
<BIRIM_FIYAT>20</BIRIM_FIYAT>
<SICIL>60950</SICIL>
<URUN_KOD>URN284</URUN_KOD>
<URUN_AD>IZGARA PİLİÇ</URUN_AD>
</MasaPersonelUrunleri>
<MasaPersonelUrunleri>
<ID>0</ID>
<ADET>1</ADET>
<BIRIM_FIYAT>25</BIRIM_FIYAT>
<SICIL>60950</SICIL>
<URUN_KOD>URN285</URUN_KOD>
<URUN_AD>TAVUK PİLİÇ</URUN_AD>
</MasaPersonelUrunleri>
</URUNLER>
</MasaPersonel>
</MASA>
</Masa>
')
COLUMNS
--describe columns and path to them:
SICIL varchar2(20) PATH './SICIL',
TARIH varchar2(20) PATH './TARIH',
PERSONEL varchar2(20) PATH './MASA/MasaPersonel/SICIL',
URUN_KODU varchar2(20) PATH './MASA/MasaPersonel/URUNLER/MasaPersonelUrunleri/URUN_KOD',
URUN_ADI varchar2(20) PATH './MASA/MasaPersonel/URUNLER/MasaPersonelUrunleri/URUN_AD',
URUN_ADETI number PATH './MASA/MasaPersonel/URUNLER/MasaPersonelUrunleri/ADET',
URUN_FIYATI number PATH './MASA/MasaPersonel/URUNLER/MasaPersonelUrunleri/BIRIM_FIYAT'
) xmlt
;
【问题讨论】: