Discussions
Categories
- 385.5K All Categories
- 5.1K Data
- 2.5K Big Data Appliance
- 2.5K Data Science
- 453.4K Databases
- 223.2K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 47 Multilingual Engine
- 606 MySQL Community Space
- 486 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.2K ORDS, SODA & JSON in the Database
- 585 SQLcl
- 4K SQL Developer Data Modeler
- 188K SQL & PL/SQL
- 21.5K SQL Developer
- 46 Data Integration
- 46 GoldenGate
- 298.4K Development
- 4 Application Development
- 20 Developer Projects
- 166 Programming Languages
- 295K Development Tools
- 150 DevOps
- 3.1K QA/Testing
- 646.7K Java
- 37 Java Learning Subscription
- 37.1K Database Connectivity
- 201 Java Community Process
- 108 Java 25
- 22.2K Java APIs
- 138.3K Java Development Tools
- 165.4K Java EE (Java Enterprise Edition)
- 22 Java Essentials
- 176 Java 8 Questions
- 86K Java Programming
- 82 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 208 Java User Groups
- 25 JavaScript - Nashorn
- Programs
- 667 LiveLabs
- 41 Workshops
- 10.3K Software
- 6.7K Berkeley DB Family
- 3.6K JHeadstart
- 6K Other Languages
- 2.3K Chinese
- 207 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 474 Portuguese
create a timestamp trigger.

748152
Member Posts: 147
would someone help me with the following table?
i am trying to create a timestamp column to store the datetime when the row was created.
when i test it with an insert, it gave me an error.
how to fix this timestamp column?
create table jobHistory
(
createTS timestamp
, ProcedureName varchar2(100)
, description varchar2(100)
)
;
create or replace trigger ins_jobHistory_timestamp
before insert
on .jobHistory
for each row
begin
:new.createTS := sysdate;
end;
insert into jobHistory (ProcedureName, Start_Or_End, description) values ('Hello', 's', 'testsing');
TRIGGER INS_JOBHISTORY_TIMESTAMP compiled
Errors: check compiler log
i am trying to create a timestamp column to store the datetime when the row was created.
when i test it with an insert, it gave me an error.
how to fix this timestamp column?
create table jobHistory
(
createTS timestamp
, ProcedureName varchar2(100)
, description varchar2(100)
)
;
create or replace trigger ins_jobHistory_timestamp
before insert
on .jobHistory
for each row
begin
:new.createTS := sysdate;
end;
insert into jobHistory (ProcedureName, Start_Or_End, description) values ('Hello', 's', 'testsing');
TRIGGER INS_JOBHISTORY_TIMESTAMP compiled
Errors: check compiler log
Best Answer
-
No need to create a trigger
SQL> create table jobHistory 2 ( 3 createTS timestamp default sysdate 4 , ProcedureName varchar2(100) 5 , description varchar2(100) 6 ) 7 ; Table created. SQL> insert into jobHistory (ProcedureName,description) values ('Abcd','Xyz'); 1 row created. SQL> select * from jobHistory; CREATETS --------------------------------------------------------------------------- PROCEDURENAME -------------------------------------------------------------------------------- DESCRIPTION -------------------------------------------------------------------------------- 28-MAY-10 07.27.40.000000 PM Abcd Xyz
Still if you want to achieve with trigger then omit the default clause andSQL> create or replace trigger ins_jobHistory_timestamp 2 before insert 3 on jobHistory 4 for each row 5 begin 6 :new.createTS := sysdate; 7 end; 8 / Trigger created. SQL> insert into jobHistory (ProcedureName,description) values ('ADS','FDR'); 1 row created. SQL> select * from jobHistory; CREATETS --------------------------------------------------------------------------- PROCEDURENAME -------------------------------------------------------------------------------- DESCRIPTION -------------------------------------------------------------------------------- 28-MAY-10 07.27.40.000000 PM Abcd Xyz 28-MAY-10 07.29.58.000000 PM ADS FDR
Edited by: Saubhik on May 28, 2010 6:59 AM
Answers
-
No need to create a trigger
SQL> create table jobHistory 2 ( 3 createTS timestamp default sysdate 4 , ProcedureName varchar2(100) 5 , description varchar2(100) 6 ) 7 ; Table created. SQL> insert into jobHistory (ProcedureName,description) values ('Abcd','Xyz'); 1 row created. SQL> select * from jobHistory; CREATETS --------------------------------------------------------------------------- PROCEDURENAME -------------------------------------------------------------------------------- DESCRIPTION -------------------------------------------------------------------------------- 28-MAY-10 07.27.40.000000 PM Abcd Xyz
Still if you want to achieve with trigger then omit the default clause andSQL> create or replace trigger ins_jobHistory_timestamp 2 before insert 3 on jobHistory 4 for each row 5 begin 6 :new.createTS := sysdate; 7 end; 8 / Trigger created. SQL> insert into jobHistory (ProcedureName,description) values ('ADS','FDR'); 1 row created. SQL> select * from jobHistory; CREATETS --------------------------------------------------------------------------- PROCEDURENAME -------------------------------------------------------------------------------- DESCRIPTION -------------------------------------------------------------------------------- 28-MAY-10 07.27.40.000000 PM Abcd Xyz 28-MAY-10 07.29.58.000000 PM ADS FDR
Edited by: Saubhik on May 28, 2010 6:59 AM -
Hi,
Since you don't have createTS in you insert statement, you could do the trick with a default value, instead:create table jobhistory(createts timestamp default systimestamp ,procedurename varchar2(100) ,description varchar2(100));
It's hard to read your unformatted post, but it looks like you have a dot that shouldn't be there:on .jobHistory
One more thing, you column is of type TIMESTAMP, yet you seem to put in a DATE. Better to have column as DATE then.
Regards
Peter -
i like your choice.
default is lighter weight in general. -
Saubhik, thank you for your post. I set default for my timestamp column to sysdate. Additionally, since I'm using JDev, I set my entity object column that required a timestamp to a History Column with a type of Created On.
Solved my issue and no trigger needed!
This discussion has been closed.