oracle 将 CLOB 列更新为 NULL

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12864946/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 01:10:41  来源:igfitidea点击:

Update CLOB Column to NULL

oracle

提问by c12

I need to update an oracle clob column value to null. I tried to below but that didn't work. Any ideas?

我需要将一个 oracle 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) 

回答by AnBisw

update table_name 
   set column_name = null 
 where table_key=12345;

NULL- Absense of data

NULL- 数据缺失

empty_clob()- CLOBis initialized and empty, not same as NULL.

empty_clob()-CLOB已初始化且为空,与NULL.

If you still get ORA-01407with this column then that means there is a NOT NULLconstraint on the column which is of CLOBdatatype.

如果您仍然ORA-01407使用此列,则表示该列存在数据类型的NOT NULL约束CLOB

UPDATE:

更新:

Since the CLOBcolumn is not NOT NULLsetting it to CONTENT_TEMPLATE = NULLshould work. CONTENT_TEMPLATE = empty_clob()will also work, but bear in mind that it is not same as NULL.

由于该CLOB列未NOT NULL将其设置为CONTENT_TEMPLATE = NULL应该可以工作。CONTENT_TEMPLATE = empty_clob()也可以工作,但请记住,它与NULL.