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.