null 以外のフィールドを空の文字列で更新する必要がある SQL Update ステートメントの作成に問題があります。
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:
これを回避する方法はありますか?場合によっては空の文字列を使用する必要がありますが、オラクルが null 値について不平を言っている理由がわかりません。
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)