Bonjour à tous,

J'aimerais stocker dans une procédure plusieurs "Insert" et/ou "Update", par question de faciliter pour ne lancer plus tard qu'un seul "job".. Mais je ne sais pas si c'est faisable? Et si oui, je ne connais pas du tout la syntaxe à utiliser.. Tant que maintenant ca ressemble à ceci :

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
PROCEDURE p_insertData_Month_HILO IS
 
insert into s716_history_logging (date_month,nbr_user_ramses,nbr_user_georamses,
								  nbr_user_forms,nbr_user_cassandra,nbr_user_mapin,user_id,peri_id)
	select mois date_mois,
		   max(decode(applicationname,'Ramses',nbr)) Ramses,
		   max(decode(applicationname,'GeoRamses',nbr)) GeoRamses,
		   max(decode(applicationname,'GeoRamsesForms',nbr)) Forms,
		   max(decode(applicationname,'Cassandra Intranet',nbr)) Cassandra,
		   max(decode(applicationname,'Cassandra Business Corner',nbr)) Mapin,
		   1 as user_id,
           1 as peri_id 
	from
	(
		select to_char(time_dt,'MM/YYYY') mois, count(distinct(username)) nbr, applicationname 
		from s716_gis_logging
		where to_char(time_dt,'MM') = lpad(decode(to_char(sysdate,'MM')-1,0,12,to_char(sysdate,'MM')-1),2,0)
			  and to_char(time_dt,'YYYY') = decode(to_char(sysdate,'MM')-1,0,to_char(sysdate,'YYYY')-1,to_char(sysdate,'YYYY'))
              and upper(username) not like '%BAC%'
		group by to_char(time_dt,'MM/YYYY'), applicationname
 
		union
 
		select to_char(login_time,'MM/YYYY') mois, count(distinct(username)),'Ramses' as applicationname 
		from s716_login_his 
		where to_char(login_time,'MM') = lpad(decode(to_char(sysdate,'MM')-1,0,12,to_char(sysdate,'MM')-1),2,0)
			  and to_char(login_time,'YYYY') = decode(to_char(sysdate,'MM')-1,0,to_char(sysdate,'YYYY')-1,to_char(sysdate,'YYYY'))
              and upper(username) not like '%BAC%'
		group by to_char(login_time,'MM/YYYY')
	)
	group by mois;
 
insert into s716_history_logging (date_month,nbr_user_ramses,nbr_user_georamses,
								  nbr_user_forms,nbr_user_cassandra,nbr_user_mapin,user_id,peri_id)
	select mois date_mois,
		   max(decode(applicationname,'Ramses',nbr)) Ramses,
		   max(decode(applicationname,'GeoRamses',nbr)) GeoRamses,
		   max(decode(applicationname,'GeoRamsesForms',nbr)) Forms,
		   max(decode(applicationname,'Cassandra Intranet',nbr)) Cassandra,
		   max(decode(applicationname,'Cassandra Business Corner',nbr)) Mapin,
		   1 as user_id,
           2 as peri_id 
	from
	(
		select to_char(time_dt,'MM/YYYY') mois, count(distinct(username)) nbr, applicationname 
		from s716_gis_logging
		where to_char(time_dt,'MM') = lpad(decode(to_char(sysdate,'MM')-1,0,12,to_char(sysdate,'MM')-1),2,0)
			  and to_char(time_dt,'YYYY') = decode(to_char(sysdate,'MM')-1,0,to_char(sysdate,'YYYY')-1,to_char(sysdate,'YYYY'))
              and upper(username) not like '%BAC%'
              and to_char(time_dt, 'FMDAY', 'NLS_DATE_LANGUAGE=FRENCH') NOT IN ('SAMEDI', 'DIMANCHE')
		group by to_char(time_dt,'MM/YYYY'), applicationname
 
		union
 
		select to_char(login_time,'MM/YYYY') mois, count(distinct(username)),'Ramses' as applicationname 
		from s716_login_his 
		where to_char(login_time,'MM') = lpad(decode(to_char(sysdate,'MM')-1,0,12,to_char(sysdate,'MM')-1),2,0)
			  and to_char(login_time,'YYYY') = decode(to_char(sysdate,'MM')-1,0,to_char(sysdate,'YYYY')-1,to_char(sysdate,'YYYY'))
              and upper(username) not like '%BAC%'
              and to_char(login_time, 'FMDAY', 'NLS_DATE_LANGUAGE=FRENCH') NOT IN ('SAMEDI', 'DIMANCHE')
		group by to_char(login_time,'MM/YYYY')
	)
	group by mois;
 
... ... ...
Et voilà l'erreur qui me donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
PLS-00103 : Encountered the symbol "INSERT" when expecting one of the following : language
PLS-00103 : Encountered the symbol "INSERT"
Merci d'avance pour votre aide =) !!