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 :

pb PL/SQL ORA-01410 cursor for update & current of


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 1
    Points
    1
    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

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    un sujet sensiblement identique a été traité
    http://www.developpez.net/forums/vie....php?p=2142039

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

    Bon courage

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    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

Discussions similaires

  1. ORA-02014: SELECT FOR UPDATE.
    Par tommey dans le forum PL/SQL
    Réponses: 5
    Dernier message: 28/04/2010, 14h51
  2. [FORMS PL/SQL] Select for Update
    Par taska dans le forum Forms
    Réponses: 3
    Dernier message: 30/08/2006, 10h33
  3. Accès concurrent sur un cursor "For update"
    Par atruong dans le forum Oracle
    Réponses: 7
    Dernier message: 04/05/2006, 22h47
  4. [ASE] Les locks avec un cursor for update
    Par PiyuXYZ dans le forum Sybase
    Réponses: 1
    Dernier message: 11/02/2006, 13h17
  5. CURSOR FOR UPDATE
    Par GoLDoZ dans le forum Oracle
    Réponses: 6
    Dernier message: 15/11/2005, 15h42

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