Если предположить, что
- Ваш столбец не на самом деле называется
date
, поскольку это зарезервированное слово
- Ваш столбец фактически определяется как
date
а не как number
- Вы хотите заполнить столбец при вставке новой строки
Вы можете определить значение по умолчанию для столбца.
SQL> ed
Wrote file afiedt.buf
1 create table products (
2 id number not null,
3 dt date default sysdate not null
4*)
SQL>/
Table created.
SQL>
SQL> insert into products(id) values(1);
1 row created.
SQL> select * from products;
ID DT
---------- ---------
1 20-NOV-12
Если вы хотите изменить dt
колонку, когда вы UPDATE
строку, вам нужно будет триггер
CREATE OR REPLACE TRIGGER trg_products
BEFORE INSERT OR UPDATE ON products
FOR EACH ROW
BEGIN
:new.dt := sysdate;
END;
Триггер отменяет любое значение, переданное в качестве части заявления INSERT
или UPDATE
для колонка dt
. Значение по умолчанию не будет.
Связанный: http://stackoverflow.com/questions/12129051/what-is-the-sql-statement-oracle-to-alter-column-to-date-with-default-sysdate – Vadzim