CASEを使用して複数の行を更新しようとしています。Oracle sql、CASEを使用して複数の行を更新する
UPDATE GRIDCOLUMNS
SET TYPE= CASE
WHEN (Fieldname = 'AccountNum' AND ID = 19337) THEN 6
WHEN (Fieldname = 'AccountNum' AND ID = 19339) THEN 6
WHEN (Fieldname = 'AccountNum' AND ID = 19380) THEN 6
WHEN (Fieldname = 'AccountNum' AND ID = 19419) THEN 6
END;
以下のコード
私はそれを実行すると、私は次のエラーを取得する:
Error starting at line 1 in command:
UPDATE GRIDCOLUMNS
SET TYPE= CASE
WHEN (Fieldname = 'AccountNum' AND ID = 19337) THEN 6
WHEN (Fieldname = 'AccountNum' AND ID = 19339) THEN 6
WHEN (Fieldname = 'AccountNum' AND ID = 19380) THEN 6
WHEN (Fieldname = 'AccountNum' AND ID = 19419) THEN 6
END
Error report:
SQL Error: ORA-01407: cannot update ("WEB"."GRIDCOLUMNS"."TYPE") to NULL
01407. 00000 - "cannot update (%s) to NULL"
*Cause:
*Action:
問題がある可能性がありますか?
問題は、ELSE'句を持たない 'CASE'式は、検索式がどれも一致しない場合に' null'と評価されることです。 –