Link to home
Start Free TrialLog in
Avatar of kgkhan
kgkhan

asked on

Oracle Time Stamp

Is there a way we can put a column in 'history' table that would keep the time, at which transaction x was commited?
ASKER CERTIFIED SOLUTION
Avatar of xiaodong
xiaodong

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of manand062397
manand062397

As Xiaodong said add new field for date field and do the followings

1. Use Trigger to update new field automatically on insert/update of record.

2. If you do not update records in history table then user default sysdate to update date and time of insertion.  

If you do not update history records then I recommend second method because there is no coding.
You follow the following steps

1. To include column in the history table using the following syntax
    SQL >     ALTER TABLE history ADD (record_date DATE);
2. Now write a DATA BASE TRIGGER for history which will take care to insert or update
   the  RECORD_DATE by using the following SYNTAX

   CREATE TRIGGER history_trigger
   BEFORE INSERT OR UPDATE ON history FOR EACH ROW
   BEGIN
       :NEW.record_date := SYSDATE;
   END;
3. Execute the above trigger which will fire whenever you insert or update the record
   and change the  update the committed time accordingly.

Since the question is locked, I could'nt able to answer you.

This is tested and it works fine
I hope this is acceptable to you - sganta


Hello !

I have posted my answer as a comment. Since the Question is locked, I could'nt able
to put in to answer column.

If you are interested in xiaodong's answer please accept this. Otherwise
reject this. If you are not interested in my answer (comment). Send a comment
so that another expert can give better solution. You've taken so much time.
What happened ?