IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Problème clause into est attendue


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 55
    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 : 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
    	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

  2. #2
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/01/2008, 11h29
  2. Problémé avec LIKE est %
    Par lassmust dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 03/10/2005, 17h00
  3. Problème mémoire, c'est grave là :/
    Par gamerome dans le forum C++
    Réponses: 6
    Dernier message: 12/08/2005, 12h29
  4. Problème : ma sphère est toute trouée !
    Par julio26 dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/05/2005, 13h47
  5. Problème clause WHERE
    Par Invité dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo