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 01/04/2008, 09h32   #1
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Par défaut Génération de fichiers d'erreurs dans une procédure PL/SQL

Bonjour à tous,

je dois dans une procédure PL/SQL où je suis appelé à faire des requêtes d'extration dans des curseurs et des requêtes d'insertion générer des fichiers d'erreurs qui doivent être consultés par d'autres personnes.
J'ai pensé fortement aux exceptions mais je sais pas comment les rediriger vers des fichiers ?
Si quelqu'un a des idées là-dessus, je suis totalement preneur.

mecri d'avance.

madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 09h56   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
recherche UTL_FILE dans le forum
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 10h43   #3
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
En fait mon probléme est :
je dois recreer à chaque nouvelle execution un nouveau fichier d'erreur donc écrire sur un nouveau fichier d'erreur vide.
Donc s'il ya un moyen de réinialiser le fichier à chaque nouvelle execution, ce serait génial. Car si je crois bien, avec le paquage UTL_FILE , il n'est possible que d'ecrire une fois sur un fichier déja créé.
voilà mon probléme.
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 10h47   #4
Membre émérite
 
Avatar de Yorglaa
 
Inscription : janvier 2004
Messages : 845
Détails du profil
Informations personnelles :
Âge : 41
Localisation : Suisse

Informations forums :
Inscription : janvier 2004
Messages : 845
Points : 939
Points : 939
non non, tu peux très bien CREER un fichier avec UTL_FILE...
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

Yorglaa
Yorglaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 11h38   #5
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
peux tu me donner stp la fonction qui cree un fichier dans la package UTL_FILE. ?
merci d'avance
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 12h00   #6
Membre émérite
 
Avatar de Yorglaa
 
Inscription : janvier 2004
Messages : 845
Détails du profil
Informations personnelles :
Âge : 41
Localisation : Suisse

Informations forums :
Inscription : janvier 2004
Messages : 845
Points : 939
Points : 939
voici une procédure que j'utilises pour crééer un fichier...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Procedure textToNewFile (    pOutputFilePath    IN      Varchar2 ,
                             pOutputFile        IN      Varchar2 ,
                             pMessage           IN      Varchar2
                        ) 
IS
    lFileHnd        Utl_File.File_Type;
 
Begin
 
    Lfilehnd := Utl_File.Fopen(Poutputfilepath,Poutputfile,'w');
    Utl_File.Put_Line(Lfilehnd, Pmessage);
    Utl_File.Fclose(Lfilehnd);
 
    Exception
        when UTL_FILE.INVALID_PATH then
           raise_application_error(-20101,'Invalid Path'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when UTL_FILE.INVALID_MODE then
           raise_application_error(-20101,'Invalid Mode'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when UTL_FILE.INVALID_OPERATION then
           raise_application_error(-20101,'Invalid Operation'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when UTL_FILE.INVALID_FILEHANDLE then
           raise_application_error(-20101,'Invalid Filehandle'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when UTL_FILE.WRITE_ERROR then
           raise_application_error(-20101,'Write Error'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when UTL_FILE.READ_ERROR then
           raise_application_error(-20101,'Read Error'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when UTL_FILE.INTERNAL_ERROR then
           raise_application_error(-20101,'Internal Error'||'; Path='||pOutputFilePath||'; File='||pOutputFile||'; Message='||pMessage);
        when others then
            UTL_FILE.FCLOSE(lFileHnd);
            raise_application_error(-20101, 'textToNewFile ERROR : ' || sqlerrm);
 
End textToNewFile;
les paramètres sont le chemin du fichier SUR LE SERVEUR, le nom du fichier, le contenu (genre au moins une première ligne...)
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

Yorglaa
Yorglaa 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 19h02.


 
 
 
 
Partenaires

Hébergement Web