簡體   English   中英

Oracle使用varchar更新CLOB

[英]Oracle update CLOB with varchar

我有一個表TABLENAMECOLUMNNAME數據類型是CLOB 例如,它僅包含3行,其中COLUMNNAME的 第一行值為123,456,789第二行為 NULL第三行為 空字符串

我有這個問題

UPDATE TABLENAME
   SET COLUMNNAME = COLUMNNAME || CASE 
                                    WHEN TRIM(COLUMNNAME) = '' OR COLUMNNAME IS NULL THEN  
                                         '098765'
                                    ELSE ',098765'
                                  END

當我運行此查詢時,出現錯誤消息ORA-00932:數據類型不一致:預期-得到CLOB

怎么解決?

我使用Oracle數據庫10g企業版10.2.0.1.0版-64位

首先,TRIM(COLUMNNAME)=''將始終失敗,因為''為NULL並且不會被等於匹配。

嘗試使用PL / SQL:

declare
  v_clob clob := ',098765';
begin
 update t
 set val = val || v_clob
 where val is not null; 
 --
 UPDATE T
 SET val =  '098765' 
 WHERE val is null;
 --
end;
/

字符串文字定義為CHAR,它很好地轉換為VARCHAR2,但是當您嘗試將其視為CLOB時,會出現不兼容錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM