質問: ADD_MONTHS(SYSDATE,-1) WHERE COL1 IN ('A','B') ``` 【質問】 ---- 上記の構文で、UPDATEYMDの日付が1ヶ月前のものに更新出来ず、 UPDATE文発行時のSYSDATEが登録されました。 ●想定データ 2017/02/24 16:50:32 ⇒ 2017/01/24 16:50:32 ●実際の更新結果 2017/02/24 16:50:32 ⇒ 2017/02/24 16:52:48 他のテーブルにあるUPDATEYMD(NOT NULL制約なし)は 1ヶ月前の日付に更新出来ました。 NOT NULL制約が付いているDATE型に対する暗黙が何かあるのでしょうか。 UPDATEYMDからNOT NULL制約を外すということは出来ないので、 SQLで変更するしか方法がないです。 上記の構文以外でNOT NULL制約が付いているDATE型に「SYSDATE,-1」を 登録する方法があれば教えてください。
回答: `NOT NULL` 制約の有無は関係ありません。 該当のテーブルに、トリガーが設定されていませんか? ``` SELECT * FROM all_triggers WHERE owner = '<スキーマ>' AND table_name = '<テーブル>' ```