2010-11-03 62 views
0

甲骨文更新CLOB我有一個表TABLENAMECOLUMNNAME數據類型爲CLOB。例如它僅包含3行與第一排的COLUMNNAME123,456,789第二NULL和是一種空字符串用VARCHAR

而且我有這個疑問

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

當我運行此查詢時,我收到錯誤消息或A-00932:不一致的數據類型:預計 - 得到CLOB

如何解決?

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

回答

2

首先,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; 
/

字符串文字被定義爲當你試圖把它像一個CLOB這很好地轉換成VARCHAR2而是通過不兼容的錯誤一個CHAR。