Bonjour,

Existe-t-il une fonction permettant de changer le format d'un type timestamp sans changer de type ? (mon but étant de transformer un timestamp de type yyyy-mm-dd hh:mi:ss en type dd/mm/yy hh:mi:ss)

N'ayant pas trouvé cette fonction j'ai essayé un trigger:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
create or replace trigger t_test
before insert on test for each row
declare
  vreste varchar(8);
  sdate varchar(20);
begin
 sdate := concat('-',substr(:new.MaDate,3,2));
 sdate := concat(sdate,substr(:new.MaDate,6,5));
 vreste := concat(' ',substr(:new.MaDate,12,19));
 sdate := concat(sdate,vreste);
 :new.MaDate := to_timestamp(sdate,'dd/mm/yy hh:mi:ss');
end;
Pas de problème lors de la creation, mais il plante sur la concatenation d'un espace visiblement(ligne 9). Pareil si j'essaie de feinter avec une fonction replace.
(Je travail sous SQL*Plus Worksheet)