Oracle SQL生成带单引号属性的XML,求对应函数或参数
Oracle XML属性引号格式修改方案
Oracle原生XML生成函数(如XMLElement、XMLAttributes)默认使用双引号包裹属性值,这符合XML标准规范。但如果需要改为单引号格式,没有直接的函数参数可以指定引号类型,可通过以下两种方式实现:
方法1:字符串替换(推荐,相对规范)
先使用标准XML函数生成XMLType对象,再通过XMLSerialize转为字符串,最后替换属性的双引号为单引号。示例代码:
SELECT REPLACE( XMLSerialize(CONTENT XMLElement("emp", XMLAttributes('123' AS "id", '张三' AS "name")) AS VARCHAR2(1000)), '="', '=''') AS single_quote_xml FROM dual;
注意:此方法仅替换属性起始的
="为=',如果属性值本身包含双引号,XML规范要求其需转义为",替换后该转义字符会保留在单引号内,不影响XML合法性。
方法2:手动拼接XML字符串(不推荐)
直接拼接带单引号的XML字符串,但这种方式需要自行处理特殊字符转义(如<、>、&等),容易引发XML格式错误,仅适用于简单场景:
SELECT '<emp id=''123'' name=''张三''/>' AS single_quote_xml FROM dual;
补充说明
XML规范允许单引号或双引号作为属性值的分隔符,两种格式均合法。如果没有强制格式要求,建议保留Oracle默认的双引号格式,避免额外的字符串处理开销。
内容的提问来源于stack exchange,提问作者Felipe Vidal
相关产品推荐
相关产品推荐

