我在编写SQL Update语句时遇到问题,我需要在其中使用空字符串更新非null字段。
UPDATE channel_mgmt.channels
SET registered_address_id=p_address_id
,vendor_id=p_spc_code
WHERE id=v_channel_id;
在这种情况下,可以将p_spc_code设置为“”,并且在运行此命令时遇到了SQL错误:
Error report:
ORA-01407: cannot update ("CHANNEL_MGMT"."CHANNELS"."VENDOR_ID") to NULL
ORA-06512: at line 8973
01407. 00000 - "cannot update (%s) to NULL"
*Cause:
*Action:
有什么想法可以解决这个问题吗?在某些情况下,我需要使用空字符串,但是我不确定为什么oracle在抱怨空值。
desc channel_mgmt.channels
Name Null Type
--------------------- -------- ------------------
ID NOT NULL NUMBER(16)
CHANNEL_STATUS_KEY NOT NULL VARCHAR2(64 CHAR)
REGISTERED_ADDRESS_ID NOT NULL NUMBER(16)
VENDOR_ID NOT NULL VARCHAR2(64 CHAR)
您是否尝试过使用' '
(其中包含一个空格的字符串)?如果是varchar,那么我相信比较(在大多数情况下,即您未指定比较白色字符)可以按预期工作。
我的意思是' ' = ' '
(单空格和双空格)应该true
用于varchar
字段。
(我没有Oracle的实例,所以不能确定...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句