我正在使用DB2 9.x,我需要将两个LONG VARCHAR列“ ETXA”和“ ETXB”(两列最多填充32700个字符)合并到新的CLOB(150K)列“ ETXALL”中。
我尝试过 更新etxdata SET ETXALL = CONCAT(ETXA,ETXB); 并得到了错误 SQL0137N“ CONCAT”产生的长度大于“ 0000032700”。 SQLSTATE = 54006
我在网上找不到解决方案。 任何解决该问题的想法将不胜感激!
答案 0 :(得分:0)
(假设您正在使用DB2 for LUW)错误消息告诉您答案https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.messages.sql.doc/com.ibm.db2.luw.messages.sql.doc-gentopic1.html#sql0137n
除非操作数之一是CLOB,否则字符字符串的结果限制为32,700字节,然后限制为2 GB。
因此,在CLOB
之前,请尝试将您的一列(或两列)投射到CONCAT
SET ETXALL = CONCAT( CLOB(ETXA), ETXB );