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

Interfaces de programmation Oracle Discussion :

Verifier verrouillage d'une table


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Apprenti Ingenieur
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Ingenieur

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Par défaut Verifier verrouillage d'une table
    Bonjour, j'ai un problème assez urgent a résoudre, après beaucoup de recherche je n'ai toujours pas trouvé de solution, je sollicite donc votre aide.

    Mon problème est simple je dois vérifier si une table est verrouillé, j'ai donc essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $req="SELECT  *  from TABLE where ... for update nowait";
    $stid=oci_parse($conn,$req);
    if(!@oci_execute($stid)){
    	$message="Erreur : Enregistrement la table TABLE verouille";
    }
    le problème c'est quand faisant cela je verrouille la table alors que je veux juste vérifier si elle l'est ou non.
    D'avance merci.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Vous pouvez tout simplement utiliser V$LOCKED_OBJECT, en jointure avec DBA_OBJECTS sur OBJECT_ID.

  3. #3
    Membre habitué
    Homme Profil pro
    Apprenti Ingenieur
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Ingenieur

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Par défaut
    Alors, je n'ai pas très bien compris, vous pourriez être un peu plus précis ?
    J'ai oublié de préciser également que je ne dois pas vérifier si la Table est verrouillée entièrement mais seulement les lignes qui m’intéresse.
    en tout cas j'ai testé cette requette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT XIDUSN,OBJECT_ID,SESSION_ID,ORACLE_USERNAME,OS_USER_NAME,PROCESS from v$locked_object
    et j'obtiens l'erreur suivante:
    ORA-00942: Table ou vue inexistante

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    L'erreur ORA-00942 signifie soit que la table indiquée n'existe pas, soit que vous n'avez pas les droits pour y accéder.
    Et en effet, la vue V$LOCKED_OBJECT n'est pas accessible à n'importe qui, et il faut donc demander les droits à votre DBA.

    Mais pouvez-vous détailler le besoin fonctionnel qui vous pousse à rechercher si une ligne est verrouillée ?
    Que ferez-vous de cette information ?

  5. #5
    Membre habitué
    Homme Profil pro
    Apprenti Ingenieur
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Ingenieur

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Par défaut
    Je dois vérifier si un enregistrement de ma table n'est pas déjà verrouillé, si oui j'affiche un message d'erreur sinon je verrouiller a mon tour pour ensuite faire une série d’opération a partir de cette ligne.
    Le but étant j'imagine que la ligne ne sois pas modifiée par un autre utilisateur pendant que d'autres opérations sont en cours sur cette ligne.

  6. #6
    Membre habitué
    Homme Profil pro
    Apprenti Ingenieur
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti Ingenieur

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Par défaut
    Personne ? c'est assez urgent ! :/

Discussions similaires

  1. Verifier l'existance d'une table
    Par kmaniche dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/12/2006, 15h56
  2. verifier si une table contient une colonne
    Par da_latifa dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/07/2006, 15h19
  3. Vérifier l'existance d'une colonne dans une table MySQL
    Par )3lade dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/04/2006, 11h46
  4. [JBDC] Verifie qu une table contien une cle
    Par harris_macken dans le forum JDBC
    Réponses: 7
    Dernier message: 11/07/2005, 16h24
  5. comment verifier l'appartenance a une table?
    Par raul83 dans le forum Access
    Réponses: 7
    Dernier message: 11/10/2004, 16h07

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