技术选型:SSM
数据库:SQL Server 2008R2
问题:使用 for xml path 做拼接时返回 net.sourceforge.jtds.jdbc.ClobImpl@2a7b12e
SELECT
(STUFF(
(SELECT
',' + kep_name
FROM CE_BD_ELECTRIC_value FOR xml path ('')
),1,1,''
)
) AS 'name'
解决方法:
1. 在使用 sql 做 xml 时转换返回类型格式 varchar 但是要注意不管什么类型都需要转,转 varchar 时要给 “长度” 不可以给 MAX,给 MAX 也返回对象。
SELECT
CONVERT (varchar (800),(STUFF(
(SELECT
',' + kep_name
FROM CE_BD_ELECTRIC_value FOR xml path ('')
),1,1,''
)
) )AS 'name'
2. 在配置数据库连接的地方加 useLOBs=false 就可以,这样的话也就不用写 convert 去转数据类型了。
jdbcr.url=jdbc:jtds:sqlserver://localhost:1433/test;useLOBs=false