1

Oracle10gExpressまたはOracleXEを使用しています。EMPLOYEESテーブルに、現在の日付または変更されている場合は日付/時刻を自動的に生成するlast_modifiedという別の列呼び出しを追加します。oracle 10g以降でのみ使用できるrowscn(timestamp)があることは知っていますが、クライアントがoracle 9iを使用しているため、手動で作成したいのですが、テストを行うために10gしかありません。また、私はこれまでOracleを使用したことがありません。これは、LotusNotesとの統合プロジェクト用です。したがって、可能であれば、LotusScriptで日付または日付/時刻を認識できるようにします。

4

2 に答える 2

1

タイプの列をテーブルに追加しTIMESTAMPます(サポートされていない9iバージョンでは使用できない場合がありますが、DATE代わりに使用してください)。

alter table employees add (modified_at timestamp);

次に、更新時に起動されるトリガーを作成します。このトリガーは、その列をsysdateに設定するだけです。

create or replace trigger update_modified
  before update on employees
  for each row
begin
  :new.modified_at := sysdate;
end;
/    
于 2012-07-24T09:03:33.403 に答える
1

通常の方法は

  • 表にmodify_date/modified_by列を追加します
  • 行が変更されるたびにこの列を更新するトリガーを作成します

例:

  CREATE OR REPLACE TRIGGER TR_AUD_EMPLOYEE
  BEFORE INSERT OR UPDATE OR DELETE ON EMPLOYEE
  FOR EACH ROW
begin

  if UPDATING then

    :new.MODIFIED_BY := user;
    :new.MODIFY_DATE := sysdate;
  end if;
end;
于 2012-07-24T09:03:38.163 に答える