在 pl/sql 中提取 xmltype
extracting xmltype in pl/sql
我是 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;
当我能够创建 table 并向其中插入行时。但是当我尝试 运行 最后一个过程时,我得到 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 ;
我是 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;
当我能够创建 table 并向其中插入行时。但是当我尝试 运行 最后一个过程时,我得到 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 ;