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

Oracle Discussion :

[Oracle SQL] Savoir si un enreg est bloqué


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut [Oracle SQL] Savoir si un enreg est bloqué
    A supposer un enregistrement bloqué par un SELECT...FOR UPDATE.

    Je cherche un moyen de savoir immédiatement si cet enreg est bloqué ou non, sans avoir à attendre les n secondes de tentatives de déblocage au moment de l'update.

    J'ai vaguement une piste du côté de V$LOCK mais n'y aurait-il pas plus simple, sous forme Sql, accessible à un utilisateur lambda ? une fonction style ISLOCKED, par exemple, qui n'attendrait pas le déverrouillage pour m'informer.

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    C'est simple : vous refaites un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... FOR UPDATE NOWAIT;
    sur l'enregistrement ! ;-)

    Si vous recevez une exception, c'est qu'il est verrouillé !

  3. #3
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Il faut faire un SELECT ... FOR UPDATE NOWAIT

    Si l'enregistrement est verrouillé, vous aurez l'erreur ORA-0054.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  4. #4
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Elémentaire !
    Merci, c'est d'une simplicité à couper le souffle !

    (mais alors qu'est-ce que c'est difficile à trouver si on demande pas !)

    Grâce à vous j'ai accompli un grand pas dans mon apprentissage d'Oracle ;-)

    Merci :-)

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    et comment fait-on pour débloquer l'enregistrement ou la table?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/09/2014, 17h41
  2. savoir si un user est connecté et ressources SQL/serveur
    Par newbie_php dans le forum Langage
    Réponses: 1
    Dernier message: 24/02/2011, 22h24
  3. comment savoir si un port est bloqué
    Par sony351 dans le forum Dépannage et Assistance
    Réponses: 6
    Dernier message: 30/06/2006, 17h08
  4. Réponses: 6
    Dernier message: 04/11/2005, 12h34
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 18h14

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