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

SQL Oracle Discussion :

Rajouter un fichier de log à mon script


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Par défaut Rajouter un fichier de log à mon script
    Bonjour à tous,

    J'ai actuellement un script SQL qui me génère dans un autre fichier les ordre sql que j'ai besoin d'exécuter par la suite.
    J'aurai voulu ensuite garder un fichier de log pour tracer les insert et delete dans ma base (et ne pas l'écraser à chaque exécution du script).
    je lance mon script depuis sqlplus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    set head off
    set echo off
    spool c:\modif_pg15_test.sql
    select 'delete from pg15_test where rdprog = ''' || RDPROG || ''' and cdprog = ''' || cdprog || ''';' from pg15 where rdprog in ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    select 'insert into pg15_test values (''' || RDPROG ||''',''' ||CDPROG||''', ''PPCLIEXP'',''' ||TICOMP||''',''' ||CDLANG||''',''' ||TYETAT || ''');' from pg15 where rdprog in ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    spool off;
    Auriez vous des idées?

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SET head off
    SET echo off
    spool c:\modif_pg15_test.sql
    select 'spool fichierlog.log' from dual;
    SELECT 'delete from pg15_test where rdprog = ''' || RDPROG || ''' and cdprog = ''' || cdprog || ''';' FROM pg15 WHERE rdprog IN ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    SELECT 'insert into pg15_test values (''' || RDPROG ||''',''' ||CDPROG||''', ''PPCLIEXP'',''' ||TICOMP||''',''' ||CDLANG||''',''' ||TYETAT || ''');' FROM pg15 WHERE rdprog IN ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    select 'spool off' from dual;
    spool off;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Par défaut
    Merci la solution me convient parfaitement!
    Reste plus qu'à mettre en forme mon fichier de log.
    Tu ne saurais pas comment on fait afficher des messages dans le fichier ?

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Avec des prompt ou des select

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Par défaut
    Tu pourrais me donner un exemple si ça te dérange pas?

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SET head off
    SET echo off
    spool c:\modif_pg15_test.sql
    SELECT 'spool fichierlog.log' FROM dual;
    SELECT 'prompt Debut fichier log' from dual;
    SELECT 'delete from pg15_test where rdprog = ''' || RDPROG || ''' and cdprog = ''' || cdprog || ''';' FROM pg15 WHERE rdprog IN ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    SELECT 'insert into pg15_test values (''' || RDPROG ||''',''' ||CDPROG||''', ''PPCLIEXP'',''' ||TICOMP||''',''' ||CDLANG||''',''' ||TYETAT || ''');' FROM pg15 WHERE rdprog IN ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    SELECT 'prompt Fin fichier log' from dual;
    SELECT 'spool off' FROM dual;
    spool off;

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Par défaut
    Merci pour ta réponse !

    J'ai quelque peu amélioré mon script pour avoir des affichages.

    J'ai quelques erreurs qui apparaissent qui me bloquent quelque peu.
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    SET head off
    SET echo off
    SET heading off
    spool modif_pg15_test.sql
    SELECT 'SET echo off' FROM dual;
    SELECT 'spool test.log' FROM dual;
    SELECT 'select sysdate from dual;' FROM dual;
    SELECT 'SET SERVEROUTPUT ON ' FROM dual;
    SELECT 'DECLARE ' FROM dual;
    SELECT 'LN$Cpt PLS_INTEGER ; ' FROM dual;
    SELECT 'BEGIN ' from dual;
    SELECT 'select count(*) INTO LN$Cpt FROM pg15_test;' FROM dual;
    SELECT 'DBMS_OUTPUT.PUT_LINE( To_char( LN$Cpt ) || ' FROM dual;
    SELECT ''' enregistrements '''FROM dual;
    SELECT ') ; ' FROM dual;
    SELECT 'delete from pg15_test where rdprog = ''' || RDPROG || ''' and cdprog = ''' || cdprog || ''';' FROM pg15 WHERE rdprog IN ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    SELECT 'DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' FROM dual;
    SELECT ''' enregistrements supprimés'''FROM dual;
    SELECT ') ; ' FROM dual;
    SELECT 'insert into pg15_test values (''' || RDPROG ||''',''' ||CDPROG||''', ''PPCLIEXP'',''' ||TICOMP||''',''' ||CDLANG||''',''' ||TYETAT || ''');' FROM pg15 WHERE rdprog IN ('FS000','AS0FT','WS000','ZS000','V3301','U2C01','ASVGD','ASUGD');
    SELECT 'DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' FROM dual;
    SELECT ''' enregistrements insérés'''FROM dual;
    SELECT ') ; ' FROM dual;
    SELECT 'ROLLBACK ; ' FROM dual;
    SELECT 'END ; ' FROM dual;
    SELECT '/ ' FROM dual;
    SELECT 'spool off' FROM dual;
    spool off;
    Et voici ce que j'obtiens dans mon fichier de log après l'exécution du script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    SQL> @modif_pg15_test.sql
     
    30/05/08
     
    118 ligne(s) sélectionnée(s).
    *
    ERREUR à la ligne 150 :
    ORA-06550: Ligne 150, colonne 1 :
    PLS-00103: Symbole "118" rencontré à la place d'un des symboles suivants :
    begin declare end exception exit for goto if loop mod null
    pragma raise return select update while <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> <<
    close current delete fetch lock insert open rollback
    savepoint set sql execute commit forall
    <a single-quoted SQL string>
    Symbole "begin inséré avant "118" pour continuer.
    ORA-06550: Ligne 150, colonne 14 :
    PLS-00103: Symbole "SÉLECTIONNÉE" rencontré à la place d'un des symboles
    suivants :
    := . ( % ;
    Symbole ":=" a été substitué à "SÉLECTIONNÉE" pour continuer.
    ORA-06550: Ligne 290, colonne 1 :
    PLS-00103: Symbole "118" rencontré à la place d'un des symboles suivants :
    begin declare end exception exit for goto if loop mod null
    pragma raise return select update while <an identifier>
    <a double-quoted delimited-identifier
    ORA-06550: Ligne 290, colonne 14 :
    PLS-00103: Symbole "SÉLECTIONNÉE" rencontré à

Discussions similaires

  1. Faire fichier log pour mon script
    Par zara5 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/07/2014, 17h20
  2. [Batch] Fichier de log et script .bat
    Par djalouk dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 26/09/2012, 16h45
  3. Comment rajouter un log à mon fichier?
    Par whyata dans le forum VBScript
    Réponses: 4
    Dernier message: 19/01/2009, 14h54
  4. Réponses: 3
    Dernier message: 31/03/2008, 13h59
  5. Scripts VBS + DOS - sortie dans un fichier de logs
    Par kayanwan dans le forum VBScript
    Réponses: 8
    Dernier message: 14/09/2007, 15h34

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