我在db2(v10)数据库中有一个CLOB(2000000)
字段,我想运行一个简单的UPDATE
查询来替换“foo”到“baaz”的每个发生。替换CLOB列中的字符(db2)
由于字段的内容更多的则是32K,我得到以下错误:
"{some char data from field}" is too long.. SQLCODE=-433, SQLSTATE=22001
我怎么能代替值?
UPDATE: 查询是以下(改变更新到SELECT更容易测试):
SELECT REPLACE(my_clob_column, 'foo', 'baaz') FROM my_table WHERE id = 10726
更新2 作为mustaccio指出,REPLACE
不上CLOB
下地干活(或至少不是没有对所输入的数据进行VARCHAR
转换 - 在我的情况下这是不可能的,因为数据的大小超过了32k) - 问题是要找到一种替代方法来实现REPLACE
函数CLOB
字段的所有人。
感谢, krisy
您可能想要显示您运行的实际语句。另外,这是DB2 for z/OS? (它是版本10的唯一平台。) – mustaccio
用查询更新了我的问题 – krisy
函数'REPLACE'接受并返回'VARCHAR',所以显然不能用它来处理CLOB列。 – mustaccio