DB2 объединяет два столбца longvarchar в новый столбец CLOB

Я использую DB2 9.x, и мне нужно объединить два столбца LONG VARCHAR «ETXA» и «ETXB» (оба столбца заполнены до 32700 символов) в новый столбец CLOB (150 КБ) ETXALL.

Я пробовал ОБНОВИТЬ etxdata SET ETXALL = CONCAT (ETXA, ETXB); и получил ошибку SQL0137N Длина, полученная в результате "CONCAT", больше, чем "0000032700". SQLSTATE = 54006

Я не мог найти решение этой проблемы в сети. Любая идея, как решить эту проблему, была бы принята с благодарностью!


person tlvs    schedule 17.07.2018    source источник
comment
Это Db2 для Z / OS, Linux / Unix / Windows или i-Series?   -  person mao    schedule 17.07.2018


Ответы (1)


(при условии, что вы используете DB2 для 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

Результаты символьной строки ограничены 32 700 байтами, если один из операндов не является CLOB, и тогда ограничение составляет 2 гигабайта.

поэтому попробуйте преобразовать один (или оба) столбца в CLOB, прежде чем CONCAT их

SET ETXALL = CONCAT( CLOB(ETXA), ETXB );
person Paul Vernon    schedule 17.07.2018