我有一個XML SQL語句,我正在使用(請參閱下面的Oracle11g SQL)來克服傳遞錯誤(下面),SQL語句可以工作,但它會脫離在REGEXP_REPLACE
語句中沒有指定的字符,例如以下É Ë È
需要包含在我的XML輸出文件中,我可以包含這些和更多,但有沒有簡短的內容來包含這些字符以及REGEXP_REPLACE
而沒有命名爲long字符列表。我已經試過SQL select DBMS_XMLGEN.CONVERT(T.title)
,因爲我已經告訴過它會去掉所有無效的字符,但是失敗的原因與下面的解析錯誤相同。XML Oracle SQL字符集ORA-31011:XML解析失敗
我之所以使用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 ,[email protected]():.#’"*&+}/\©{ÂÀÃÏÎÔ܀ǿ%´_$()'',-`]', '', 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
這可能是更容易維護要替換的字符的列表.. 。 – Shnugo
您是否可以更新您的問題以包含複製您所看到的問題的示例數據? – Boneist
該參數設置了什麼? SELECT * FROM V $ NLS_PARAMETERS where parametertrer = 'NLS_NCHAR_CONV_EXCP' –