如何修复db2“value”太长导致XML数据值被XMLSERIALIZE函数序列化为输出?

时间:2018-02-23 20:27:34

标签: sql xml db2 xmlserializer

如何修复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

0 个答案:

没有答案