2012-10-12 111 views
1

我需要將oracle clob列值更新爲null。我試圖在下面,但沒有奏效。有任何想法嗎?將CLOB列更新爲NULL

update table_name 
    set CONTENT_TEMPLATE=empty_clob() 
where table_key=12345; 


Name     Null  Type   
-------------------- -------- ------------- 
TEST_KEY   NOT NULL NUMBER(10)  
TEST_ID    NOT NULL VARCHAR2(100) 
TEST_TYPE   NOT NULL VARCHAR2(30) 
TEMPLATE_ID     VARCHAR2(100) 
ROUTE       VARCHAR2(100) 
MEDIUM      VARCHAR2(100) 
BEGIN_EFFECTIVE_DATE NOT NULL DATE   
END_EFFECTIVE_DATE NOT NULL DATE   
CUSTOMER_ID   NOT NULL VARCHAR2(30) 
VAR_ID    NOT NULL VARCHAR2(30) 
CREATION_DATE  NOT NULL DATE   
LAST_UPDATED_DATE NOT NULL DATE   
LAST_UPDATED_BY  NOT NULL VARCHAR2(30) 
CONTENT_TEMPLATE    CLOB   
SUBJECT_TEMPLATE    CLOB   
UNIT_TYPE      VARCHAR2(30) 
OVERLOADED_ALERT_KEY   NUMBER(10)  
ALERT_TYPE_ALIAS    VARCHAR2(100) 
+3

對於記錄'empty_clob()'不是'NULL'。 – Annjawn

+0

桌子上是否有更新觸發器? –

回答

2
update table_name 
    set column_name = null 
where table_key=12345; 

NULL - 數據

empty_clob()由於缺少的 - CLOB被初始化和空的,不相同NULL

如果您仍然得到ORA-01407與此列那麼這意味着有一個NOT NULL約束的列是CLOB數據類型。

UPDATE:

由於CLOB列不是NOT NULL將其設置爲CONTENT_TEMPLATE = NULL應該工作。 CONTENT_TEMPLATE = empty_clob()也可以工作,但請記住它與NULL不一樣。

+0

我不能這樣做這個clob列,我得到SQL錯誤:ORA-01407:無法更新(「用戶」。「表」。「列」)爲NULL 01407. 00000 - 「無法更新(%s)爲NULL「 *原因: *操作: – c12

+0

這是因爲該列存在」NOT NULL「約束。不是因爲它是'BLOB'。在桌子上做一個「desc」,你會看到。 – Annjawn

+0

當我運行select * from table where column IS NULL;我得到結果 – c12