Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/02/2011, 16h49   #1
Invité de passage
 
Inscription : février 2011
Messages : 48
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 48
Points : 1
Points : 1
Par défaut Problème clause into est attendue

j'ai un probléme avec ma requette: elle marche trés bien coté sql qd je l'execute mais une fois je l'introduit dans ma procédure ils me disent une erreur close into est attendue


Code :
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
	PROCEDURE etatstat1(in_date1 IN VARCHAR2, out_inum OUT tbl_integer, out_mois3 OUT tbl_integer, out_mois2 OUT tbl_integer, out_mois1 OUT tbl_integer, out_total OUT tbl_integer)
	AS
 
 
	var_count		INTEGER;
 
  var_count1		INTEGER;
  var_count2	  INTEGER;
  var_count3		INTEGER;
 
 
	var_date		DATE;
	var_date1		DATE;
	var_date2		DATE;
	var_date3		DATE;
 
	BEGIN
 
 
        var_date := TO_DATE(in_date1,'dd/mm/yyyy');
  	var_date1 := ADD_MONTHS(var_date, -1);
	var_date2 := ADD_MONTHS(var_date, -2);
	var_date3 := ADD_MONTHS(var_date, -3);
 
 
		out_inum(1) := 1;
 
---cette requete marche trés bien 
 
		SELECT	COUNT(DISTINCT H1.ienseignant) INTO var_count FROM r_histo_etats_enseignants H1
		WHERE	H1.ietat IN (2,3,4,7)
		AND	H1.date_effet_ens IN (SELECT MAX(date_effet_ens) FROM r_histo_etats_enseignants H2
						WHERE	H1.ienseignant = H2.ienseignant
						AND	H2.date_effet_ens <= var_date );
 
		out_total(1) := NVL(var_count,0);
 
 -- cette requete me pose un probleme erreur: une clause INTO...
 
SELECT sum(var_count3) AS var_count3, sum(var_count2) AS var_count2, sum(var_count1) AS var_count1 FROM (
SELECT 
CASE when (min(date_effet_ens) BETWEEN var_date1 AND var_date) then count(DISTINCT(ienseignant)) ELSE 0 END AS var_count1,
CASE when (min(date_effet_ens) BETWEEN var_date2 AND var_date1) then count(DISTINCT(ienseignant)) ELSE 0 END AS var_count2,
CASE when (min(date_effet_ens) BETWEEN var_date3 AND var_date2) then count(DISTINCT(ienseignant)) ELSE 0 END AS var_count3
FROM r_histo_etats_enseignants 
WHERE	
ietat IN (2,3,4,7)
GROUP BY ienseignant);
 
out_mois1(1) := var_count1;
out_mois2(1) := var_count2;
out_mois3(1) := var_count;
je reçois

Erreur(55,1): PLS-00428: une clause INTO est attendue dans cette instruction SELECT
souf_87 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/02/2011, 17h11   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SELECT sum(var_count3)
      , sum(var_count2)
      , sum(var_count1) 
 INTO var_count3
      , var_count2
      , var_count1 FROM (
SELECT
CASE when (min(date_effet_ens) BETWEEN var_date1 AND var_date) then count(DISTINCT(ienseignant)) ELSE 0 END AS var_count1,
CASE when (min(date_effet_ens) BETWEEN var_date2 AND var_date1) then count(DISTINCT(ienseignant)) ELSE 0 END AS var_count2,
CASE when (min(date_effet_ens) BETWEEN var_date3 AND var_date2) then count(DISTINCT(ienseignant)) ELSE 0 END AS var_count3
FROM r_histo_etats_enseignants
WHERE
ietat IN (2,3,4,7)
GROUP BY ienseignant);
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h15.


 
 
 
 
Partenaires

Hébergement Web