Hallo Ich versuche folgende Update-Anweisung auszuführenOracle-Update mit Case-Anweisung Ausgabe
UPDATE rebate_admin.PRODUCT_REBATE_ITEM_RULE_GROUP SET rule_priority_Nbr =
CASE
WHEN (rule_priority_Nbr = 3) THEN (rule_priority_Nbr+1)
WHEN (rule_priority_Nbr = 4) THEN (rule_priority_Nbr-1)
END
WHERE DEFAULT_RULE_IND = 1 AND ACTIVE_IND= 1 AND RULE_PRIORITY_NBR NOT IN (9999999900, 1)
AND PRODUCT_REBATE_DETAIL_SEQ IN (843)
Es mit Fehler fehlschlägt:
Cannot update (%s) to NULL.
versuchen, diese zu where-Klausel: und rule_priority_Nbr in (3,4) – tbone
Es ist nicht klar, was Sie zu aktualisieren versuchen. Sie schließen explizit die Zeilen aus, in denen RULE_PRIORITY_NBR 1 oder 9999999990 ist, Sie fügen explizit die Zeilen ein, in denen RULE_PRIORITY_NBR 3 oder 4 ist ... was ist mit all den anderen möglichen Werten? Offensichtlich gibt es andere Werte (die auf NULL aktualisiert werden, was zu dem Fehler führt). – mathguy
@Tbone - vorausgesetzt, dass dies in der Tat die gewünschte Logik ist (was wir nicht wissen, ist es für das OP zu klären). – mathguy