如何使用ColdFusion创建XML并传递至SQL存储过程?
问题:ColdFusion生成XML传递至SQL存储过程遇编码错误
场景代码
生成XML的ColdFusion代码
<cfxml variable="objXml"> <imp> <data> <date>3/20/2023</date> <name>John</name> <CC>US</CC> </data> </imp> </cfxml>
存储过程参数传递代码
<cfprocparam type="In" cfsqltype="CF_SQL_SQLXML" dbvarname="@xmlData" value="#objXml.toString()#" null="no">
尝试过的解决方法及结果
- 将
cfsqltype改为CF_SQL_CLOB,未解决“无法切换编码”错误 - 使用
ENCODEFORHTML(objXML)处理XML内容,存储过程可运行但未成功处理数据 - 尝试
XMLPARSE()解析XML,无效 - 参考ColdFusion文档调整编码设置,问题依旧
- 旧代码采用
createObject("java", "java.lang.StringBuilder")逐节点拼接XML,以CLOB类型传递,曾一度失效,最终验证后恢复可用
最终解决方案
复用旧方案:通过java.lang.StringBuilder逐节点拼接XML内容,以CF_SQL_CLOB类型作为参数传递给SQL存储过程,问题解决。
内容的提问来源于stack exchange,提问作者Jimmy Goodson
相关产品推荐
相关产品推荐

