【发布时间】:2016-07-14 20:15:35
【问题描述】:
我在执行以下 PL/SQL 代码时遇到此错误,我不知道为什么。
PLS-00382:表达式类型错误 PL/SQL: ORA-00913: 值太多 PL/SQL:忽略 SQL 语句
我了解 ORA-00913 的原因是 SELECT 语句中引用的两组数据中的值不匹配。
在我在记录中添加 checkVar 变量之前,代码运行良好。只是想知道是否有任何方法可以在不从 testRec 记录中取出 checkVar 的情况下解决这个问题?
DECLARE
X XMLType:=XMLType( '<Testmain>
<TeamSel>
<code>abc123</code>
<name>awrqer</name>
</TeamSel>
<TeamSel>
<code>abc678</code>
<name>gokhg</name>
</TeamSel>
</Testmain>
');
TYPE testRec IS RECORD(
name VARCHAR2(512),
code VARCHAR2(512),
checkVar BOOLEAN:=FALSE
);
TYPE testRecTab IS TABLE OF testRec INDEX BY BINARY_INTEGER;
testList testRecTab;
BEGIN
SELECT EXTRACTVALUE(VALUE(xml_list),'//Name') AS lname,
EXTRACTVALUE(VALUE(xml_list),'//Code') AS lcode
BULK COLLECT
INTO testList
FROM TABLE(XMLSEQUENCE(EXTRACT(X,'Testmain/TeamSel'))) xml_list;
--rest of the code
END;
【问题讨论】:
标签: oracle plsql xml-parsing