在pl / sql中提取xmltype

时间:2018-03-21 12:26:15

标签: oracle plsql xmltype

我是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

为什么会这样?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道您到底想要实现的目标,但这是EXTRACTEXISTSNODE函数可用于检索员工数字的数值的方式 - {{1} }

EMPNO

https://stackoverflow.com/a/48752995/85539