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 :

Vérifier qu'un fichier n'est pas en cours d'édition par quelqu'un


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Par défaut Vérifier qu'un fichier n'est pas en cours d'édition par quelqu'un
    Bonjour,
    alors j'explique mon problème.

    J'ai une procédure sur un serveur batch qui est appelé.
    Cette procédure vise à créer un fichier XML.

    Une autre procédure est appelé derrière.
    Cette dernière doit lire le fichier XML, et le transcrire en un fichier Excel.
    Tout cela marche plus ou moins bien.

    Néanmoins, quand le fichier XML généré contient trop de lignes (le fichier contient un ensemble de données extraites de la base), le fichier met trop de temps à s'ecrire, et donc ma fonction qui doit transformer le fichier XML en Excel merde un peu ... si ce n'est beaucoup.


    Donc dans un premier temps, j'avais voulu effectuer un test.
    Je m'étais dis qu'en faisant une boucle qui fait

    Lire le fichier XML en mode lecture.
    Si utl_file.invalid_path
    alors sleep de 2 sec

    et on refait un tour de la boucle.
    etc ...

    une fois qu'on a réussi à lire dans le fichier, je pensais que le fichier avait fini d'être ecrit. Et donc que je pouvais executer ma fonction qui transcrit en Excel. Mais visiblement ce n'est pas le cas
    Le utl_file.invalid_path ne semble être executé que si le fichier XML lui même ne semble pas être créer. Une fois créer, on y a visiblement accès, et donc mon algo ne marche pas.

    J'aimerais donc savoir si il y a une fonction ou un moyen en PL/SQL de vérifier que le fichier n'est plus accéder par personne (ce qui signifierais donc pour moi que le fichier a fini d'être ecrit, et donc que je puisse appeler ma fonction traduisant en Excel).
    J'ai beau chercher, je n'arrive pas à trouver

    Voila.
    Merci d'avance de votre aide.

    Cordialement.

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 211
    Par défaut
    bonjour,

    Personnellement je ne connais pas cette fonction, mais tu pourrais peut être ouvrir le fichier en écriture quand tu voudras le lire pour la transcription en excel.

    Si cela fonctionne alors l'écriture est terminée, sinon ton programme est en train d'écrire dessus...

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par ic3m4n Voir le message
    ...J'ai une procédure sur un serveur batch qui est appelé.
    Cette procédure vise à créer un fichier XML.

    Une autre procédure est appelé derrière.
    ...
    Si les deux procédures sont exécutées en mode synchrone il n’y aucun souci. Donc pourriez-vous détailler ?

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/01/2008, 11h56
  2. Réponses: 6
    Dernier message: 12/02/2007, 19h24
  3. Tester que le fichier n'est pas un fichier binaire
    Par fedfil dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/10/2005, 17h29
  4. Réponses: 18
    Dernier message: 30/06/2005, 13h30

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