[英]Oracle update CLOB with varchar
我有一個表TABLENAME與COLUMNNAME數據類型是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.