我遇到了編寫SQL更新語句的問題,其中需要使用空字符串更新非空字段。Oracle SQL使用空字符串更新非空列
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)
這是行得通的,不知道爲什麼我沒有早點想到它,只是試圖將事情複雜化:( –