2016-05-07 5 views
-3

OracleでSQLトリガーを作成すると、挿入日の日付と月がチェックされ、1月1日でない場合はトリガーによって更新されますか?間違った日付を変更するSQLトリガー

例:この例では

CREATE TABLE Contract (
Ends_on DATE NOT NULL 
); 

INSERT INTO Contract (Ends_on) 
VALUES (TO_DATE('2017-1-30','yyyy-mm-dd')); 

、日付が自動的に「2017年1月1日」に

を変更する必要がありますトリガが利用して、次のようになり、事前

+1

ウェルコ私はあまりにも!これまでのトリガーコードは何ですか?あなたは正確な*問題を持っていますか? –

+0

なぜ今年を保存するだけではないのですか? –

答えて

0

に感謝TRUNC関数の2番目の引数が'YEAR'の場合:

CREATE OR REPLACE TRIGGER trg_ins_contract 
    BEFORE INSERT ON Contract 
    FOR EACH ROW 
BEGIN 
    :new.Ends_on := TRUNC(:new.Ends_on, 'YEAR'); 
END; 
/
関連する問題