Я новичок в XLQuery и пробовал базовую команду -
CREATE TABLE person_data (
person_id NUMBER(3),
person_data XMLTYPE
);
INSERT INTO person_data
(person_id, person_data)
VALUES
(1, XMLTYPE('
<PDRecord>
<PDName>Daniel Morgan</PDName>
<PDDOB>12/1/1951</PDDOB>
<PDEmail>damorgan@u.washington.edu</PDEmail>
</PDRecord>')
);
INSERT INTO person_data
(person_id, person_data)
VALUES
(2, XMLTYPE('
<PDRecord>
<PDName>Jack Cline</PDName>
<PDDOB>5/17/1949</PDDOB>
<PDEmail>damorgan@u.washington.edu</PDEmail>
</PDRecord>')
);
INSERT INTO person_data
(person_id, person_data)
VALUES
(3, XMLTYPE('
<PDRecord>
<PDName>Caleb Small</PDName>
<PDDOB>1/1/1960</PDDOB>
<PDEmail>damorgan@u.washington.edu</PDEmail>
</PDRecord>')
);
То, что я пытался ...
select person_id,
XMLQuery('for $i in /PDRecord where $i/PDName = "Jack Cline" order by $i/PDName return $i/PDName'
passing by value t.person_data
returning CONTENT ) XMLData
from person_data t;
Но это не удается с ошибкой
ORA-30625: отправка метода по аргументу NULL SELF запрещена
Не можете понять, почему? Также, если вы знаете хороший учебник по XMlQuery, укажите мне на это.
Примечание: я уже просмотрел документацию.