■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
WHEN句の指定で… 2008/01/30 14:55 OB 2
最近PL/SQLを始めた初心者です。
今トリガーを勉強しているのですが、
WHENの指定で分からない部分がありお知恵を貸してください。

Aという表のhogehogeという列以外になにかしらのSQL文が
発行されたときにhogehogeにSYSDATEを入れたいのですが、

この「hogehoge列以外」というWHEN句はどう書けばいいのでしょうか?

いろいろネットを検索してみたのですがキーワードが悪いのかひっかかりません。
またこのような条件などの一覧表をおいてらっしゃるサイトさん等
ご存知でしたら教えていただけないでしょうか?

よろしくお願いします。
こんにちは
後迫@SIです。

お問い合わせいただきました件についてですが、
挿入(更新)されるレコードの、
対象列がNULLの場合はSYSDATEを代入するような処理で
可能と思います。

簡単なものとなりますが、サンプルコードを以下に記述いたしますので、
参考にしていただけますでしょうか。

CREATE OR REPLACE TRIGGER トリガー名
BEFORE INSERT OR UPDATE ON テーブル名
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
IF :NEW.日付型の列名 IS NULL THEN
:NEW.日付型の列名 := SYSDATE;
END IF;
END;
/

何卒よろしくお願いいたします。
ありがとうございます。
そういう方で記述する方法もあるんですね。
活用させていただきます。