我是pl / sql的新手,并开始使用xmltype
我在https://docs.oracle.com/cd/B10501_01/appdev.920/a96616/arxml24.htm上按照这个例子
看起来像这样
CREATE TABLE Xml_tab ( xmlval xmltype);
INSERT INTO Xml_tab VALUES (
xmltype('<?xml version="1.0"?>
<EMP>
<EMPNO>221</EMPNO>
<ENAME>John</ENAME>
</EMP>'));
INSERT INTO Xml_tab VALUES (
xmltype('<?xml version="1.0"?>
<PO>
<PONO>331</PONO>
<PONAME>PO_1</PONAME>
</PO>'));
-- now extract the numerical values for the employee numbers
SELECT e.xmlval.extract('//EMPNO/text()').getNumVal() as empno
FROM Xml_tab
WHERE e.xmlval.existsnode('/EMP/EMPNO') = 1;
当我能够创建表并将行插入其中时。但是当我尝试运行最后一个程序时,我得到了ORA-22950: cannot ORDER objects without MAP or ORDER method
为什么会这样?先感谢您。
我不知道你究竟想要实现什么,但这是如何使用EXTRACT
和EXISTSNODE
函数来检索员工数字的数值 - EMPNO
SELECT extract(xmlval,'/EMP/EMPNO/text()').getNumberVal() as empno
FROM Xml_tab WHERE
existsnode(xmlval,'/EMP/EMPNO') = 1 ;