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 16/11/2011, 09h59   #1
Membre chevronné
 
Avatar de pinocchio
 
Homme François
Développeur informatique
Inscription : novembre 2002
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : novembre 2002
Messages : 773
Points : 787
Points : 787
Par défaut problème de curseur

Bonjour,
Je commence les curseurs et dans le guide PL/SQL, je n'ai pas trouvé d'exemple comme le mien donc je ne sais pas si c'est possible mais pourtant cela me semble la bonne utilisation.
Pourriez-vous m'aider à trouver le ou les erreurs que je commets, svp.
Ma procédure correspond à
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
 
CREATE OR REPLACE  PROCEDURE "CHGT_TR" 
(
 nEXERCICE IN number
) IS
 nTr IN number;
	CURSOR C_AG IS
		SELECT num, mnt, etat
		FROM Ag
		WHERE Ann=nExercice;
begin
		FOR Cur IN C_AG loop
			IF C_AG.etat = 1 THEN
				UPDATE ag_ex 
				SET 
				     num=0,
			                  num2=0
				WHERE ex=nExercice
				AND num=C_AG.num;
			else
				SELECT num_tr INTO nTr1
				FROM tr
				WHERE mnt BETWEEN inf AND sup
				  AND ex = nExercice;
 
 
				UPDATE ag_ex 
				SET 
				     num=nTr,
				     num2=0
				WHERE ex=nExercice
				AND num=C_AG.num;
			end IF;
		End loop;
end;
il m'indique PLS 00225: réference de curseur C_AG est hors étendue.
Une idée?
Cordialement
__________________
La SNCF est mon ami
blog PARIS-GRANVILLE
Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)
pinocchio est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 10h28   #2
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
Bonjour,

Il me semble que l'erreur vient de la :
Code :
1
2
3
 
		FOR Cur IN C_AG loop
			IF C_AG.etat = 1 THEN
Il faut accéder aux champs via Cur, et non plus C_AG.
Ce qui donnerait:
Code :
1
2
3
 
		FOR Cur IN C_AG loop
			IF Cur .etat = 1 THEN
Etc...

@+
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 10h31   #3
Membre chevronné
 
Avatar de pinocchio
 
Homme François
Développeur informatique
Inscription : novembre 2002
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : novembre 2002
Messages : 773
Points : 787
Points : 787
Merci et désolé
__________________
La SNCF est mon ami
blog PARIS-GRANVILLE
Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)
pinocchio est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h36.


 
 
 
 
Partenaires

Hébergement Web