Bonjour,
J'ai une table temporaire qui stocke les données temporairament puis ils vont etre truncate :
CREATE TABLE KPI.HTTP_ODS
puis ma table que je vais l'utliser:
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 ( HOST VARCHAR2(500 BYTE), DATE_HTTP DATE, NBYTEDN NUMBER, NBSESSTCP NUMBER, AVG_SYN_SYNACK NUMBER, AVG_SYNACK_ACK NUMBER, DELAYREQANS NUMBER, NBGET NUMBER, NBPOST NUMBER, OTHERREQ NUMBER, NB1XX NUMBER, NB2XX NUMBER, NB3XX NUMBER, NB4XX NUMBER, NB5XX NUMBER, NBOTHERANS NUMBER )
pour insérer les données de la table temporaire vers la table objecitf j'ai crée une procédure stockée en utilisant un curseur
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 CREATE TABLE KPI.HTTP_DWHS ( ID INTEGER PRIMARY KEY, HOST VARCHAR2(500 BYTE), DATE_HTTP DATE, NBYTEDN NUMBER, NBSESSTCP NUMBER, AVG_SYN_SYNACK NUMBER, AVG_SYNACK_ACK NUMBER, RTT_HTTP NUMBER, DELAYREQANS NUMBER, NBGET NUMBER, NBPOST NUMBER, OTHERREQ NUMBER, NB1XX NUMBER, NB2XX NUMBER, NB3XX NUMBER, NB4XX NUMBER, NB5XX NUMBER, NBOTHERANS NUMBER )
et du coup j'ai un erreur car la table ods ne contient pas la clé primaire je sais pas comment corriger cet erreur
j'ai crée une séquence , j'essaye avec un trigger mais ça marche pas j'essaye avec seq.nextval j'ai le mem erreur
ceci le code de ma procédure :
que je dois mettre pour ne pas avoir cet erreur et de générer le clé primaire automatiquement,
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
41
42
43
44
45
46
47
48
49 CREATE OR REPLACE procedure KPI.http_modif is CURSOR c_http is select HOST ,DATE_HTTP ,NBYTEDN ,NBSESSTCP ,kpi.unite_s(AVG_SYN_SYNACK) ,kpi.unite_s(AVG_SYNACK_ACK) ,kpi.sum_s(AVG_SYN_SYNACK, AVG_SYNACK_ACK) ,kpi.unite_s(DELAYREQANS) ,NBGET ,NBPOST ,OTHERREQ ,NB1XX ,NB2XX ,NB3XX ,NB4XX ,NB5XX ,NBOTHERANS from kpi.http_ods; TYPE array_http is table of c_http%rowtype; http_data array_http; begin open c_http; loop fetch c_http bulk collect into http_data limit 1000; begin forall i in 1..http_data.count insert into KPI.HTTP_DWHS(HOST,DATE_HTTP,NBYTEDN,NBSESSTCP,AVG_SYN_SYNACK,AVG_SYNACK_ACK,RTT_HTTP ,DELAYREQANS,NBGET,NBPOST,OTHERREQ,NB1XX,NB2XX,NB3XX,NB4XX,NB5XX,NBOTHERANS) values http_data(i); end; exit when c_http%notfound; end loop; close c_http; end; /
merci d'avance pour votre aide
Partager