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 11/04/2006, 12h02   #1
Invité de passage
 
Inscription : avril 2006
Messages : 2
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 2
Points : 0
Points : 0
Par défaut pb PL/SQL ORA-01410 cursor for update & current of

Bonjour,
J'ai un problème sur un package PL/SQL pourtant simple:

1 curseur principal sur une table (en jointure avec une autre)
des tests dans la boucle et si certains sont concluants, une mise à jour de donnée sur le current cursor
=> la compile passe mais l'execution plante en ORA-1410 sur la premiere mise à jour à faire

declare
...
curr_Crit PKG_PURGE.TYP_CRITERES;

CURSOR CUR_T_LOG IS
SELECT T_LOGCR_LCR.rowid idLog, LCR_LOG_ID , LCR_DATE_CRE , LCR_DATE_SUP, DCR_NATURE
FROM T_LOGCR_LCR, T_DEFLOG_CR_DCR
WHERE T_LOGCR_LCR.DCR_CODE_CR = T_DEFLOG_CR_DCR.DCR_CODE_CR
FOR UPDATE OF T_LOGCR_LCR.LCR_DATE_SUP;

lig_curs CUR_T_LOG%ROWTYPE;

begin
...
open CUR_T_LOG;
<<boucleT_LOG>>
loop
fetch CUR_T_LOG into lig_curs;
if CUR_T_LOG%NOTFOUND then
exit boucleT_LOG;
end if;

if lig_curs.DCR_NATURE = PKG_PURGE.c_NIVEAU_WARN then
if lig_curs.LCR_DATE_CRE <= curr_Crit.warn_datePurge then
UPDATE T_FG_LOGCR_LCR SET LCR_DATE_SUP = SYSDATE WHERE CURRENT OF CUR_T_LOG;
end if;
end if;
end loop boucleT_LOG;
close CUR_T_LOG;
end;


çà ne passe pas non plus sans current cursor (en utilisant les ROWID)
à vrai dire, je ne vois pas, j'ai trouvé dans le manuel oracle le même exemple (avec 2 tables accèdées)

la version oracle utilisées est la 9.2.0.6.0

merci pour votre aide
carlitoB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2006, 15h45   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
un sujet sensiblement identique a été traité
http://www.developpez.net/forums/viewtopic.php?p=2142039

Peut etre cela va t il t'aider a résoudre ton problème

Bon courage
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 14h59   #3
Invité de passage
 
Inscription : avril 2006
Messages : 2
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 2
Points : 0
Points : 0
merci pour le lien
j'ai "résolu" le probleme et je suis un peu : dû à un nom de table différent entre celle du curseur (T_FG_LOG...) et celle de l'update (T_LOG...)...
reste à le voir dans l'ordre SQL... ce qui prends quand même qques jours
carlitoB 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 19h06.


 
 
 
 
Partenaires

Hébergement Web