Declare
pData Xmltype := Xmltype('something ...');
Type t Is Record (
mara_matnr Varchar2(50),
mara_begru Varchar2(50)
);
Type T_MARATAB Is Table Of t;
lt_mara T_MARATAB;
Begin
Select m.mara_matnr as MARA_MATNR,
ExtractValue(value(t),'/MARA/MARA_BEGRU') as MARA_BEGRU
Bulk Collect Into lt_mara
From Table( XMLSequence( extract( pData, '/ARTICLE/MARA') ) ) t
Left Outer Join Mara_4S m On m.mara_matnr='XYZ';
End;
我的XML数据可以包含重复的节点,因此我使用ExtractValue和Bulk Collect。 该代码在Oracle11上编译。
在Oracle 9i上失败,并显示ORA-03113。如果我用表Mara_4S中的另一个字段替换ExtractValue(),它也会编译。此代码有什么问题?我在Oracle官方文档的9i中看到了ExtractValue。
谢谢