我需要从我的数据库中合并多个行,为此我需要去掉一些特定的字符。我使用以下代码:
REPLACE(
(CAST(XMLSERIALIZE(XMLAGG(XMLTEXT(
CONCAT(RTNTXT.LIN_TX,'')
)
) AS CLOB(10024)
) AS VARCHAR(402)
)
),'
',''
) AS NARRATIVE
一旦在任何<mystring>
记录中我有符号→,我的查询就会显示关于非法XML字符001A的警告。
我尝试使用一些谷歌建议和转换代码:
REPLACE(
(CAST(XMLSERIALIZE(XMLAGG(XMLTEXT(
CONCAT(RTNTXT.LIN_TX,'')
)
) AS CLOB(10024)
) AS VARCHAR(402)
)
),x'1A',''
) AS NARRATIVE
但是错误仍然存在。
你能告诉我我可以修改语法使它工作吗?
1条答案
按热度按时间ccrfmcuu1#
您必须先从字串中移除不合法的XML字符,**才能将它传递给XML函式。
请考虑以下示例。如果取消注解掉的字符串的注解,则会得到SQLCODE=-20377以及您提到的类似文本。请注意,'→'字符没有问题。问题在于x '1A'字符。