2016-09-04 3 views
0

Alors ajoutez aa colonne update_time en utilisant l'horodatage de type de donnéesComment mettre à jour une valeur de colonne dans horodatage de type de données en utilisant Oracle 10G

donc j'ai besoin de mettre à jour une valeur d'horodatage de mettre à jour les données à l'aide d'Oracle 10G en ligne de commande SQL

SQL> ALTER TABLE TIME_STAMPTABLE ADD UPDATE_TIME TIMESTAMP 
      DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 

Mais je reçois:

eRREUR à la ligne 1:
ORA-01735: invalide ALTER option TABLEAU

+1

Oracle juste [ne supporte pas que la syntaxe] (https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_3001.htm#i2054940). Vous devrez utiliser un déclencheur pour définir la valeur de la colonne automatiquement lors d'une mise à jour. –

+0

Où dans le [manuel Oracle 10g] (http://docs.oracle.com/cd/B19306_01/server.102/b14200/toc.htm) avez-vous trouvé 'on update current_timestamp'? –

+0

@ Horse .. Je suppose que OP a repris la syntaxe d'alt de DB2 et a tenté sa chance dans Oracle. – XING

Répondre

0

Comme mentionné par Alex, oracle ne supporte pas une telle syntaxe, vous devez créer un déclencheur montré ci-dessous sur votre table.

SQL> ALTER TABLE TIME_STAMPTABLE ADD UPDATE_TIME TIMESTAMP ; 

SQL> create or replace trigger upd_tim_stmp 
before INSERT OR UPDATE on TIME_STAMPTABLE 
for each row 
begin 
:new.UPDATE_TIME:= CURRENT_TIMESTAMP; 
end; 
/