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 :

limitation SELECT FOR UPDATE sur les fonctions d'agregat


Sujet :

PL/SQL Oracle

  1. #1
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut limitation SELECT FOR UPDATE sur les fonctions d'agregat
    Bonjour

    Je doit utiliser dans un trigger l'equivalent de la requete suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select min(num) from tablenum where checked = 1 for update
    Vu que la fonction for update n'est pas utilisable pour la fonction min, oracle genere l'erreur suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-01786: FOR UPDATE of this query expression is not allowed
    .
    Je suppose qu'il y a moyen de s'en sortir avec un tableau mais je ne sais pas comment faire. Si quelqu'un a une suggestion. Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    tu veux faire quoi exactement ? Mettre à jour les colonnes de la ligne ayant le plus petit num ?

    Si c'est le cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT num FROM tablenum WHERE checked = 1 ORDER BY num FOR UPDATE
    - ouvre le curseur
    - FETCH
    - UPDATE CURRENT OF

    C'est tout

    Ou UPDATE directement avec un HAVING num = min(num)

  3. #3
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    Merci d'avance

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    Salut Ora france ,

    ta solution fonctionne bien sinon j'ai trouve celle-ci sur asktom qui ne lock que une ligne

    http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::11_QUESTION_ID:12281803628890

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme sur requete "Select for update"
    Par claudge dans le forum DB2
    Réponses: 13
    Dernier message: 17/09/2013, 17h55
  2. [OCILIB] De l'influence de SetAutoCommit sur des requêtes select for update
    Par cobfly dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 16/12/2011, 16h32
  3. [Verrou] SELECT FOR UPDATE
    Par e1lauren dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 13/10/2005, 17h06
  4. doc sur les fonctions
    Par masterfab dans le forum C
    Réponses: 18
    Dernier message: 23/06/2005, 17h55
  5. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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