Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 02/01/2012, 17h00   #1
Membre à l'essai
 
Inscription : novembre 2009
Messages : 93
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 93
Points : 22
Points : 22
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 :
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
Tonii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2012, 17h04   #2
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 983
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 983
Points : 1 693
Points : 1 693
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.
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 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 03h49.


 
 
 
 
Partenaires

Hébergement Web