SELECT DISTINCT ENTRY_GUID FROM
(SELECT e.ENTRY_GUID FROM alertwlnqedv3.ENTRY e,
alertwlnqedv3.ENTRY_PARTNERDEFINED_INFO ep,
alertwlnqedv3.PRODUCT p
WHERE e.ENTRY_GUID = ep.ENTRY_GUID AND
e.PRODUCT_CODE = p.PRODUCT_CODE AND
(XMLEXISTS('/partnerDefinedInfo/facetedIds/alertGroup[text()=
("Colleen&s Main Web2 QA Folder")]' PASSING PARTNERDEFINED_INFO) ) AND
e.STATUS_CODE != 13 AND
p.PRODUCT_VALUE =1)
我尝试运行上述查询 - 其中Colleen&s Main Web2 QA Folder
是在运行时输入的文本。现在因为它允许特殊字符&
查询正在破坏。我试图用\和另外一个&
逃脱但仍然失败。请让我知道如何处理这种情况。 TIA。
答案 0 :(得分:2)
尝试使用chr(38)
代替&
SELECT DISTINCT ENTRY_GUID FROM
(SELECT e.ENTRY_GUID FROM alertwlnqedv3.ENTRY e,
alertwlnqedv3.ENTRY_PARTNERDEFINED_INFO ep,
alertwlnqedv3.PRODUCT p
WHERE e.ENTRY_GUID = ep.ENTRY_GUID AND
e.PRODUCT_CODE = p.PRODUCT_CODE AND
(XMLEXISTS(('/partnerDefinedInfo/facetedIds/alertGroup[text()=
("Colleen'||chr(38)||'s Main Web2 QA Folder")]') PASSING PARTNERDEFINED_INFO) ) AND
e.STATUS_CODE != 13 AND
p.PRODUCT_VALUE =1)
答案 1 :(得分:1)
只需使用此模式:
'text1&' || 'text2'
答案 2 :(得分:1)
在XPath表达式中使用该值时,需要使用XML实体转义&符号。因此,您需要使用&
&
您还需要处理其他特殊的XML字符:
&
- &
<
- <
>
- >
"
- "
'
- '