Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    mars 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : mars 2011
    Messages : 35
    Points : 17
    Points
    17

    Par défaut Lancer différentes requêtes avec récupération du spoule

    Bonjour,

    Je me sent un peut gêné de poster encore pour demander de l'aide mais après quelques jours de tâtonnement et de recherches je me sent un peut coincé.

    J'ai grâce à votre aide réussi à me connecter à ma base Oracle,t à opérer à quelques select / Updates et à exporter mes scripts dans un fichier *.exe

    Du coup je me suis mis à essayer d'automatiser un maximum les tâches répétitives auxquels nous sommes quotidiennement confrontés.

    L'une d'entre elle est de nous connecter à une base oracle via SQL plus, lancer une series de requetes stockés dans un fichier SQL (select / création de tables / update / drop tables etc ...).

    L'objectif est donc d'envoyer la requête et d'en garder une trace dans un fichier spoule.

    Pour ce qui est de la connexion à la base -> pas de problèmes.
    Par contre je ne sais pas s'il est possible de préparer une seule et même requête du type :

    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
    $dbh ->do("spool on
    spool spoule_dvcesse1_$cession
     
    /* Afficher des trucs */
     
    select  a,b,c
    from    xy
    where   un_truc like '%$cession/1%'
    order   by c
    ;
     
    /* Créer une table*/
     
    create  table table_1
    as select a,b,c
    from    ix,y
    where   un_truc like '%$cession/1%'
    group by b
    ;
     
    /* Afficher le contenu de la table */
     
    select * from table_1
    ;
     
    /* Supprimer les tables */
     
    drop table table_1
    ;
     
    spool off");
    Visiblement cette façon de faire ne fonctionne pas.

    J'ai testé aussi les étapes petit à petit en envoyant les requêtes les une après les autres. Tout fonctionne très bien mais je n'arrive pas à avoir mon fichier spoule (ce qui reste quelque chose de primordiale pour l'automatisation de ma tache.)

    Si quelqu'un à une idée ... par avance merci !

  2. #2
    Membre confirmé
    Homme Profil pro Benjamin Rouxel
    Développeur informatique
    Inscrit en
    avril 2007
    Messages
    238
    Détails du profil
    Informations personnelles :
    Nom : Homme Benjamin Rouxel
    Âge : 27
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2007
    Messages : 238
    Points : 236
    Points
    236

    Par défaut

    Bonjour,

    Comme vous l'avez constaté il n'est pas possible d'excuter tout ce bloc de requete en une seule fois.
    Pour ce qui est du fichier de suivi, vous pouvez utiliser les fichier de logs du system (openlog, syslog, closelog).
    Ou encore ouvrir un fichier manuellement (open) et écrire dedans au fur et à mesure de l'avancée du script.
    Il est aussi tout à fait possible de récupérer les résultats des requetes select avec la méthode query ou prepare/execute/fetch du module utilisé pour ensuite placer les résultats dans un fichier.
    Linux because rebooting is just for adding medias

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    mars 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : mars 2011
    Messages : 35
    Points : 17
    Points
    17

    Par défaut

    C'est bien la conclusion que j'ai finis par tirer mais je voulais en avoir confirmation.

    Merci pour la réponse !

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •