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.
Сбой ORA-03113 в Oracle 9i.Если я заменю ExtractValue () другим полем из таблицы Mara_4S, оно тоже скомпилируется.Что не так с этим кодом?Я видел, что ExtractValue доступен в 9i в официальном документе Oracle.
Спасибо