【发布时间】:2020-04-14 21:53:38
【问题描述】:
我正在尝试运行以下 sql 查询。
SELECT sr.resultid, xt2.*
FROM RESULTS sr,
XMLTABLE('/extraInfo/resultsViewData'
PASSING XMLType(sr.extrainfo)
COLUMNS
docketNumber VARCHAR2(35) PATH 'docketNumber',
dateFiled VARCHAR2(35) PATH 'dateFiled',
nosDescription VARCHAR2(70) PATH 'nosDescription',
courtname VARCHAR2(100) PATH 'courtname',
chapter VARCHAR2(35) PATH 'chapter'
) xt2
WHERE sr.profileId = '7dd76222';
注意:sr.extrainfo 具有值
'<extraInfo><resultsViewData><courtname>FL Circuit & County - Santa Rosa</courtname></resultsViewData></extraInfo>'
即使我使用'& amp ;' 而不是'&',我仍然收到以下错误,
ORA-31011: XML parsing failed
ORA-19213: error occurred in XML processing at lines 1
LPX-00242: invalid use of ampersand ('&') character (use &)
ORA-06512: at "SYS.XMLTYPE", line 272
ORA-06512: at line 1
31011. 00000 - "XML parsing failed"
*Cause: XML parser returned an error while trying to parse the document.
*Action: Check if the document to be parsed is valid.
有时我什至得到错误,
LPX-00242: invalid use of ampersand ('&') character (use &amp;)
有什么办法可以解决这个问题吗?
【问题讨论】:
-
能和这个类似吗? asktom.oracle.com/pls/apex/…
-
无法复制此db<>fiddle。请问edit你的问题是minimal reproducible example,它足够完整,我们可以执行它并产生错误吗?
-
@MT0 我的项目中使用的 XML 要大得多。为了简单起见,我只是使用了一个较小的 xml,因此问题没有被重现。我现在使用 '&' 而不是 '&'在 extrainfo 中,我正在使用 PASSING XMLType(DBMS_XMLGEN.CONVERT(sr.extrainfo)) 因为我在某处读到 DBMS_XMLGEN.CONVERT 可用于转义 &。但我收到错误“LPX-00210:预期的“