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

PL/SQL Oracle Discussion :

Erreur PLS-00103


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Par défaut Erreur PLS-00103
    Bonjour,

    Excellente année 2012 à tous!
    Je me permets de revenir vers vous pour une procédure qui ne fonctionne pas. J'ai l'erreur PLS-00103 mais je ne comprends pas pourquoi.

    voici ma Procédure:

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    CREATE OR REPLACE Procedure P_ECART_TYPE_QUINZE ( v$NOM_SCHEMA IN varchar2 )
    IS
     
    CURSOR C_QUINZE IS
    SELECT DATEFIC, HOSTNAME, MOUNT_POINT, T_OCCUP 
    FROM MCO_FS 
    where DATEFIC = sysdate 
    AND T_OCCUP > 70 
    ORDER BY T_OCCUP DESC;
     
    -- Déclartion des variables
    v$DATEFIC      MCO_FS.DATEFIC%TYPE;
    v$HOSTNAME     MCO_FS.HOSTNAME%TYPE;
    v$MOUNT_POINT  MCO_FS.MOUNT_POINT%TYPE;
    v$T_OCCUP      MCO_FS.T_OCCUP%TYPE;
     
    v$ECART        NUMBER(10) :=0;
    v$SUM_CARRE    NUMBER(10) :=0;
    v$ECART_CARRE  NUMBER(10) :=0;
    v$MOYENNE      NUMBER(10) :=0;
    v$NB_RESULT    NUMBER(10) :=0;
    v$LA_VARIANCE  NUMBER(10) :=0;
    v$ECART_TYPE   NUMBER(10) :=0;
     
    BEGIN
     
    OPEN C_QUINZE;
     
    LOOP
     
    FETCH C_QUINZE INTO 
    v$DATEFIC,
    v$HOSTNAME,
    v$MOUNT_POINT,
    v$T_OCCUP;
     
     SELECT COUNT(*) INTO v$NB_RESULT
     FROM  MCO_FS WHERE HOSTNAME = v$HOSTNAME and MOUNT_POINT = v$MOUNT_POINT
     AND DATEFIC <= SYSDATE AND DATEFIC >= (SYSDATE-15);
     
     SELECT SUM(T_OCCUP) INTO v$T_OCCUP
     FROM MCO_FS WHERE HOSTNAME = v$HOSTNAME AND MOUNT_POINT = v$MOUNT_POINT
     AND DATEFIC <= SYSDATE AND DATEFIC >= (SYSDATE-15);
     
     v$MOYENNE := v$T_OCCUP/v$NB_RESULT;
     
     CURSOR C_QUINZE_T_OCCUP IS
       SELECT T_OCCUP FROM MCO_FS
       WHERE HOSTNAME = v$HOSTNAME and MOUNT_POINT = v$MOUNT_POINT
       AND DATEFIC <= SYSDATE AND DATEFIC >= (SYSDATE-15);
     
      v$T_OCCUP_DERIVE      MCO_FS.T_OCCUP%TYPE;
     
     OPEN C_QUINZE_T_OCCUP;
     LOOP   
      v$ECART := v$T_OCCUP_DERIVE - v$MOYENNE;
      v$ECART_CARRE := v$ECART*v$ECART;
      v$SUM_CARRE := v$SUM_CARRE+v$ECART_CARRE;
     END LOOP;
     
     v$LA_VARIANCE := v$SUM_CARRE/v$NB_RESULT;
     v$ECART_TYPE := SQRT(v$LA_VARIANCE);
     
     CLOSE C_QUINZE_T_OCCUP;
     
     INSERT INTO MCO_DERIVE_QUINZE 
     (DATEFIC, HOSTNAME, MOUNT_POINT, T_OCCUP, ECART_TYPE)
     values
     (v$DATEFIC, v$HOSTNAME, v$MOUNT_POINT, v$T_OCCUP, v$ECART_TYPE);
     COMMIT;
     
     
    END LOOP;
    CLOSE C_QUINZE; -- fermeture du curseur Table brute
     
    END;
    Peut-on ouvrir deux curseurs?

    Merci d'avance

  2. #2
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Voici déjà quelques pistes :
    - Tous tes curseurs doivent être déclarés dans le même bloc.
    - Toutes tes variables doivent être déclarées dans le même bloc.

Discussions similaires

  1. [PL/SQL] Erreur PLS-00103 dans un trigger
    Par sami.g dans le forum Oracle
    Réponses: 1
    Dernier message: 18/12/2006, 18h57
  2. Réponses: 4
    Dernier message: 23/05/2006, 18h04
  3. erreur PLS-00103 sur une fonction
    Par atruong dans le forum Oracle
    Réponses: 2
    Dernier message: 28/04/2006, 14h49
  4. Erreur PLS 00103
    Par claralavraie dans le forum Oracle
    Réponses: 4
    Dernier message: 05/01/2006, 18h44
  5. fonction LAG et erreur PLS-00103. Oracle 8i
    Par henrirobert dans le forum Oracle
    Réponses: 7
    Dernier message: 26/05/2005, 17h03

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