oracle生成xml时出ORA-06512错误,请问怎么解决?

灰太狼已不再单身 2014-06-03 11:43:12
错误信息:
ORA-31011:XML语法分析失败
ORA-19202:XML处理
LPX-00241:实体引用的形式不正确
Error at line 19 时出错
ORA-06512:在“SYS.XMLTYPE”,line 5..
错误说的什么 line 19,我都不知道是哪儿 。其中 RemoveHtmlTags 这个是自定义的函数,去除html标记的
求大神解答!

SELECT
sys.xmlType.createXML('<SERVICE_ITEM SEQ="'||T.SEQ||'">'||CHR(10)||
'<SERVICE_ITEM_ID>'||T.SERVICE_ITEM_ID||'</SERVICE_ITEM_ID>'||CHR(10)||
'<SERVICE_SOURCE>'||T.SERVICE_SOURCE||'</SERVICE_SOURCE>'||CHR(10)||
'<OWNER_ID>'||T.OWNER_ID||'</OWNER_ID>'||CHR(10)||
'<SERVICE_NAME>'||T.SERVICE_NAME||'</SERVICE_NAME>'||CHR(10)||
'<REGISTER_DATE>'||T.REGISTER_DATE||'</REGISTER_DATE>'||CHR(10)||
'<USED_NUM>'||T.USED_NUM||'</USED_NUM>'||CHR(10)||
'<SERVICE_CLASS>'||T.SERVICE_CLASS||'</SERVICE_CLASS>'||CHR(10)||
'<LINKMAN>'||T.LINKMAN||'</LINKMAN>'||CHR(10)||
'<TEL>'||T.TEL||'</TEL>'||CHR(10)||
'<EMAIL>'||T.EMAIL||'</EMAIL>'||CHR(10)||
'<SERVICE_OBJECT>'||T.SERVICE_OBJECT||'</SERVICE_OBJECT>'||CHR(10)||
'<SERVICE_METHOD>'||T.SERVICE_METHOD||'</SERVICE_METHOD>'||CHR(10)||
'<SERVICE_PROCEDURE>'||T.SERVICE_PROCEDURE||'</SERVICE_PROCEDURE>'||CHR(10)||
'<CHARGE_METHOD>'||T.CHARGE_METHOD||'</CHARGE_METHOD>'||CHR(10)||
'<FROM_URL>'||T.FROM_URL||'</FROM_URL>'||CHR(10)||
'</SERVICE_ITEM>').getStringVal() AS TEMP
FROM (SELECT
RANK() OVER (ORDER BY A.INPUTDATE DESC) SEQ, --记录号
A.ITEMID AS SERVICE_ITEM_ID, --服务项目编码
DECODE(A.SOURCE, 1, 1, 2, 1, 3, 2) AS SERVICE_SOURCE, --服务来源(1平台,2服务机构)
A.SORGID AS OWNER_ID, --平台编码或者机构编码
A.SERVICEITEMNAME AS SERVICE_NAME, --服务名称
A.INPUTDATE AS REGISTER_DATE, --注册时间
A.APPLYTIMES AS USED_NUM, --服务次数
A.SVCID AS SERVICE_CLASS, --服务分类
A.CONTACT_PERSON AS LINKMAN, --服务联系人
A.CONTACT_PHONE AS TEL, --联系电话
A.CONTACT_EMAIL AS EMAIL, --电子邮箱
REPLACE(A.SVOLISTID, ',', ';') AS SERVICE_OBJECT, --服务对象
RemoveHtmlTags(REPLACE(A.SVMLISTID, ',', ';')) AS SERVICE_METHOD, --服务方式
RemoveHtmlTags(A.CONTENT) AS SERVICE_PROCEDURE, --服务和服务流程描述
CASE
WHEN A.CHARGINGMETHOD IS NULL THEN A.CHARGE
WHEN A.CHARGINGMETHOD = '1' THEN A.CHARGE
WHEN A.CHARGINGMETHOD = '2' THEN A.CHARGE || CHR(13) || CHR(10) || '收费:' || TRIM(TO_CHAR(NVL(A.PRICERANGE1, 0), '99,999,990.00')) || '~' || TRIM(TO_CHAR(NVL(A.PRICERANGE2, 0), '99,999,990.00')) || ' 元'
WHEN A.CHARGINGMETHOD = '3' THEN A.CHARGE || CHR(13) || CHR(10) || '收费:面议'
WHEN A.CHARGINGMETHOD = '4' THEN A.CHARGE END AS CHARGE_METHOD,--收费模式
(SELECT /*+ FULL(SYS_SYSCODE) */ BREVIARY FROM SYS_SYSCODE WHERE TYPEID = 'DATASHARING' AND ID = '5') || A.ITEMID AS FROM_URL --数据来源URL
FROM PLTF_SRVPROJECT A
WHERE EXISTS (SELECT DATAID FROM PLTF_SYNCLOG WHERE TYPEID = 'SERVICE_ITEMS' AND UPLOAD = 0 AND A.ITEMID = DATAID)
ORDER BY A.INPUTDATE DESC ) T
...全文
946 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
哎,看了数据,都没问题,就是不知道为什么有这个错,搞得现在只有组合成clob来输出了
  • 打赏
  • 举报
回复
引用 2 楼 whnxdd 的回复:
还钱
再来1000就还你500
Ruhee 2014-06-03
  • 打赏
  • 举报
回复
还钱
草莓V 2014-06-03
  • 打赏
  • 举报
回复
前排学习。望大神多多照顾!!
小灰狼W 2014-06-03
  • 打赏
  • 举报
回复
对XML类型不熟悉 感觉可以从 LPX-00241 这个错误入手: LPX-00241 entity reference is not well formed Cause: An entity reference (general or parameter) was not formed properly. Action: Form entity reference correctly as "&name;" or "%name;".
  • 打赏
  • 举报
回复
没人遇到过这个问题?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧