Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换CLOB列中的字符(db2)_Db2_Clob - Fatal编程技术网

替换CLOB列中的字符(db2)

替换CLOB列中的字符(db2),db2,clob,Db2,Clob,我在db2(v10)数据库中有一个CLOB(2000000)字段,我想对其运行一个简单的UPDATE查询,以将每次出现的“foo”替换为“baaz” 由于该字段的内容超过32k,因此出现以下错误: "{some char data from field}" is too long.. SQLCODE=-433, SQLSTATE=22001 如何替换这些值 更新: 查询如下(为便于测试,将更新更改为SELECT): 更新2 正如mustaccio所指出的,REPLACE在CLOB字段上不起作用

我在db2(v10)数据库中有一个
CLOB(2000000)
字段,我想对其运行一个简单的
UPDATE
查询,以将每次出现的“foo”替换为“baaz”

由于该字段的内容超过32k,因此出现以下错误:

"{some char data from field}" is too long.. SQLCODE=-433, SQLSTATE=22001
如何替换这些值

更新: 查询如下(为便于测试,将更新更改为SELECT):

更新2 正如mustaccio所指出的,
REPLACE
CLOB
字段上不起作用(或者至少在没有对输入的数据执行强制转换到
VARCHAR
的情况下不起作用-在我的情况下,这是不可能的,因为数据的大小超过32k)-问题是如何找到另一种方法来为
CLOB
字段获取
REPLACE
功能性

谢谢,
krisy不确定这是否适用于您的情况:DB2提供了两种不同的替换函数,和。SYSFUN中的REPLACE版本接受CLOB并支持高达1 MB的值。如果您的值比您需要编写自己的(基于SQL的?)函数的时间长


顺便说一句:您可以通过执行“values(current path)”来检查函数解析。

最后,由于我没有通过SQL查询找到实现这一点的方法,我最终导出了表,在Notepad++中编辑了表的lob内容,然后再次导入了表。

您可能希望显示您运行的实际语句。另外,这是DB2forz/OS吗?(它是唯一一个有版本10的平台。)用queryThe函数更新了我的问题
REPLACE
接受并返回
VARCHAR
,因此显然不能使用它来处理
CLOB
列。您试过db2内置模块吗?我试过dbms\u lob;它包含很多有用的方法,但没有替换。另外,SYSFUN.REPLACE也有同样的限制(32k),谢谢您的回答!遗憾的是,我的字段大于1Mb(约3-4Mb)
SELECT REPLACE(my_clob_column, 'foo', 'baaz') FROM my_table WHERE id = 10726