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に変換できません

編集:

ああ、やあ、みんな。私がこれを行ってテストしていたテストシステムでは、列は実際にはvarchar(4000)であったことがわかりました(実際には、そのclobである必要があります)。私が実際にテストシステムを使用した最初の人だったのではないかと思わせるようなものです...

4

1 に答える 1

0

これは、Oracle10.2で修正されたとされています。それは確かにオラクル11gR2で動作します

アップグレードできない場合は、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 に答える