问题描述
我正在从工作簿中做例子。我创建了表格并插入了几条记录。下面是我的代码:
创建表:
现在我想运行XMLQuery:
我得到了错误:
ORA-19114: XPST0003-解析XQuery表达式时出错:
LPX-00801: XQuery语法错误在 'i'
1美元/记录
-^
19114. 00000-“解析XQuery表达式时出错: % s”
* 原因: 在XQuery表达式的解析过程中发生错误。
* 操作: 检查详细的错误消息以了解可能的原因。
创建表:
CREATE TABLE test_Pracownicy
(IDPracownika NUMBER(3),
Dane XMLTYPE);
Insert record to the table:
INSERT INTO test_Pracownicy (IDPracownika, Dane)
VALUES (1,
XMLTYPE('
Kowalski
Jan
1980
1.77
2001/02/10
')
);现在我想运行XMLQuery:
SELECT IDPracownika,
XMLQuery(
'FOR $i IN /PRecord
WHERE $i /Nazwisko = "Kowalski"
ORDER BY $i/Imie
RETURN $i'
PASSING by VALUE Dane
RETURNING CONTENT) NazwiskoXML
FROM test_Pracownicy;我得到了错误:
ORA-19114: XPST0003-解析XQuery表达式时出错:
LPX-00801: XQuery语法错误在 'i'
1美元/记录
-^
19114. 00000-“解析XQuery表达式时出错: % s”
* 原因: 在XQuery表达式的解析过程中发生错误。
* 操作: 检查详细的错误消息以了解可能的原因。
专家解答
XQuery表达式区分大小写,使用小写关键字:
CREATE TABLE test_Pracownicy
(IDPracownika NUMBER(3),
Dane XMLTYPE);
INSERT INTO test_Pracownicy (IDPracownika, Dane)
VALUES (1,
XMLTYPE('
Kowalski
Jan
1980
1.77
2001/02/10
')
);
set long 10000
SELECT IDPracownika,
XMLQuery(
'FOR $i IN /PRecord
WHERE $i /Nazwisko = "Kowalski"
ORDER BY $i/Imie
RETURN $i'
PASSING by VALUE Dane
RETURNING CONTENT) NazwiskoXML
FROM test_Pracownicy;
SQL Error: ORA-19114: XPST0003 - error during parsing the XQuery expression:
LPX-00801: XQuery syntax error at 'i'
1 FOR $i IN /PRecord
SELECT IDPracownika,
XMLQuery(
'for $i in /PRecord
where $i /Nazwisko = "Kowalski"
order by $i/Imie
return $i'
PASSING by VALUE Dane
RETURNING CONTENT) NazwiskoXML
FROM test_Pracownicy;
IDPRACOWNIKA NAZWISKOXML
------------ --------------------------------------------------------------------------------
1
Kowalski
Jan
1980
1.77
2001/02/10
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




