如何修复db2“value”太长ERROR是由XML数据值序列化为XMLSERIALIZE函数输出引起的?
错误:价值太长了。 SQLCODE = -433,SQLSTATE = 22001,DRIVER = 4.19.49
SELECT ID, RTRIM(
REPLACE(
REPLACE(
CAST(
XMLSERIALIZE(
XMLAGG(
XMLELEMENT(NAME "Concatenated_Column", E.ColumnA)
ORDER BY E.ColumnA
)
as CLOB(4000)
)
AS VARCHAR(4000)
),
'<ColumnXML>',''
),
'</ColumnXML>',','
)
) as Output_Concatenated_Column
FROM TABLE_E E
group by ID
此处表名是TABLE_E
ID列:ID(输出表中应为主键/唯一)
要连接的列ColumnA - 将A列中的值转换为逗号分隔值。
示例
输入
----------
ID Column A
----------
XYZ 1
XYZ 2
XYZ 3
PQR 1
PQR 6
PQR 7
PQR 6
输出
----------
ID Output_Concatenated_Column
XYZ 1,2,3
PQR 1,6,7