我有一个我正在使用的XML SQL语句(参见下面的Oracle11g SQL)来克服传递错误(如下所示),SQL语句有效,但它确实删除了REGEXP_REPLACE
中未指定的字符声明,例如需要包含在我的XML输出文件中的以下É Ë È
,我可以包含这些以及更多,但是在REGEXP_REPLACE
中还有一个简短的包含这些字符而没有命名长字符列表。我已经尝试过SQL select DBMS_XMLGEN.CONVERT(T.title)
,因为我被告知这会删除所有无效字符,但是这个失败的解析错误如下所示。
我使用REGEXP_REPLACE
的原因,因为它因标题数据库字段中的某些字符(例如char(160)
无中断空格)而失败。
是否有更简单的解决方案,或者我必须在REGEXP_REPLACE
中包含一长串字符。
提前致谢。
DECLARE
*
ERROR at line:
ORA-31011: XML parsing failed
ORA-06512: at line 8
麻烦是因为我正在处理不同的角色
SELECT XMLAGG ( XMLELEMENT ("referenceAvGroup",
XMLFOREST (cre_surr_id AS "societySeriesNumber",
'SERIES' AS "avGroupType"),
XMLELEMENT ("prodTitle",
XMLFOREST (title AS "title",
tt_code_description AS "titleType")
)
)
)
FROM ( SELECT trim(REGEXP_REPLACE(T.title, '[^a-zA-Z0-9 ,!@():.#’"*&+}/\©{ÂÀÃÏÎÔ܀ǿ%´_$()'',-`]', '', 1, 0, 'i')) AS title,
'ORIGINAL' AS tt_code_description,
T.tt_code AS tt_codes,
T.cre_surr_id
FROM titles T
WHERE T.tt_code = Com0300.title_type_registered)
WHERE cre_surr_id = prod.prod_series_cre_surr_id
答案 0 :(得分:1)
最后只是一个更新我跟下面的。似乎有很多控制字符已从文件加载到数据库中,导致我的SQL XML无法解析。使用下面的内容并删除这些字符后,我的SQL XML运行正常。感谢您就此主题提出的所有建议。
REGEXP_REPLACE(替换(prod.CAMPAIGN_NAME,CHR(160),''),' [[:CNTRL:]]&#39)