Bonjour à tous.
J'essaye de créer une requête insert basée sur un select avec des datatype timestamp et y ajouter des interval.
Le simple select fonctionne.
Mais une fois que construit l'insert basé sur ce sélect, ça foire.
Le problème vient de l'intervalle.
Je sais c'est surement tout con mais je trouve pas.
Voici la DDL (table et séquence) de la table
Et voici la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 REM START EPSS EPSS_MONITOR CREATE TABLE "EPSS"."EPSS_MONITOR" ( "ID" NUMBER, "START_TIME" TIMESTAMP (6), "END_TIME" TIMESTAMP (6), "DESCRIPTION" VARCHAR2(200 CHAR), "TIME_SPENT" NUMBER, "CHECK_OK" VARCHAR2(20 CHAR) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "EPSS_DATA" ; REM END EPSS EPSS_MONITOR REM START EPSS EPSS_MONITOR COMMENT ON TABLE "EPSS"."EPSS_MONITOR" IS 'used internally to store the time spent by the monitoring station to submit a proposal without taking into account the network load.'; REM END EPSS EPSS_MONITOR REM START EPSS EPSS_MONITOR_INDEX CREATE UNIQUE INDEX "EPSS"."EPSS_MONITOR_INDEX" ON "EPSS"."EPSS_MONITOR" ("ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "EPSS_INDEX" ; REM END EPSS EPSS_MONITOR_INDEX The sequence: REM START EPSS EPSS_PERFMON CREATE SEQUENCE "EPSS"."EPSS_PERFMON" MINVALUE 1 MAXVALUE 99999999999 INCREMENT BY 1 START WITH 116934 CACHE 20 ORDER NOCYCLE ; REM END EPSS EPSS_PERFMON
Le problème survient ici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select 'insert into epss_monitor (id, start_time, end_time, description, time_spent, check_ok) values (epss_perfmon.nextval, timestamp '''||start_time + interval '''1''' month ||''', timestamp '''||end_time + interval '''1''' month ||''','||description||','|| time_spent||','||check_ok||');' from epss_monitor where start_time between to_timestamp ('08-02-2008 09:14:00' ,'DD-MM-YYYY HH24:MI:SS') and to_timestamp ('10-02-2008 10:31:00','DD-MM-YYYY HH24:MI:SS') order by start_timeC'est certainement un problème de single quotes. Mais je trouve pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part start_time + interval '''1''' month
Voilà.
Merci d'avance pour vos réponses.![]()
Partager