2012-11-27 110 views
2

我該怎麼做?Oracle:更新CLOB形成大於4000個字符的另一個表

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

錯誤:

ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion

編輯:

哦,孩子,SRY傢伙。我發現這個列實際上是一個varchar(4000),我正在測試這個測試系統(在它應該是它的clob中)。有點讓你想知道我是否是第一個真正使用測試系統的人...

+0

您是否嘗試過使用DBMS_LOB.SUBSTR? – Vargan

回答

0

據說這是fixed in 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; 
/
+0

你說得對。請參閱編輯... –

相關問題