Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/05/2011, 21h19   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 1
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 1
Points : 0
Points : 0
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.
ic3m4n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 11h10   #2
Membre du Club
 
Inscription : décembre 2010
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 190
Points : 60
Points : 60
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...
AbouZaid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 14h04   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 311
Points : 5 808
Points : 5 808
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 ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h09.


 
 
 
 
Partenaires

Hébergement Web