2

我怎样才能做到这一点?

UPDATE 
    My_Table SET my_clob = (
        SELECT 
            other_clob
        FROM 
            other_table
        WHERE 
            my_table.id = other_table.id
    );

错误:

ORA-22835: 缓冲区太小,无法进行 CLOB 到 CHAR 或 BLOB 到 RAW 转换

编辑:

哦,男孩,sry 伙计们。我发现该列实际上是我正在测试的测试系统中的一个 varchar(4000)(在 prod 中它应该是一个 clob)。有点让你想知道我是不是第一个真正使用测试系统的人......

4

1 回答 1

0

据称这已在 oracle 10.2 中修复。它当然适用于oracle 11g R2

如果无法升级,请尝试使用一些 PL/SQL:

begin
  for rec in (select id, other_clob from other_table) loop
    update my_table set my_clob = rec.other_clob where id = rec.id;
  end loop;
end;
/
于 2012-11-27T11:40:56.997 回答