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

Scripts/Batch Discussion :

Génération fichier excel via batch


Sujet :

Scripts/Batch

  1. #1
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 971
    Par défaut Génération fichier excel via batch
    Bonjour,

    j'ai un petit souci dans un de mes script.

    Le contexte est le suivant, j'ai un script qui exécute une requête automatiquement et qui créé un fichier excel et qui l'enregistre dans un dossier, jusque là ça va.

    Ce script, je l'execute dans 3 bases différentes, base1,base2 et base 3.

    le fichier excel généré sur la base 1 fait 119 mo pour environ 200 000 lignes
    base 2 : 100 mo pour environ 150 000 lignes

    mais sur la base 3, le script se lance, le fichier tourne mais il ne s'arrête pas de tourné , je vois la taille augmenter 200mo,300,500 je l'ai arreté quand il a atteind les 2go , je ne sais pas pourquoi il tourne comme ça indéfiniment.

    Pour info: la base 3 et certes plus grande que les deux autres , mais en faisant la requête sur sqldeveloper, j'ai 488 000 résultats ( ce qui est normal ) pour une taille de 200mo environ . C'est le résultat que je dois avoir normalement en le faisant tourner automatiquement.

    Pourtant c'est exactement le même script , mais il n'y a que la base qui change et ce problème ne se pose pas sur mon autre script que je fais tourné sur les 3 bases et qui génère des fichiers plus ou moins égaux au précédent.

    Comment cela se fait il que pour un script sur 3, le résultat ne fonctionne pas ?

    Merci pour vos lumières.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Sans voir ton script ça va être compliqué de t'aider.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 971
    Par défaut
    Merci pour ton retour, jevais essayer de détaillé au mieux

    pour donner un exemple, voici un extrait du script qui fonctionne, c'est à dire qu'il me génère un fichier sur les 3 base normalement, pour une requete1:

    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
    30
    31
    32
    33
    set echo off
    set newp none
    set termout off
    set feedb off
    set head on
    set heads on
    SET VERIFY OFF
    set pages 10000
    set lines 10000
    set linesize 20000 
    set trimspool on
    set underline off
    set pagesize 10000
    set colsep ";"
    define date1=foo 
    column date1 new_value date1
    select 'monfichier.csv'  date1 from dual;
    set termout on
    spool "D:\dossier1\dossier2\dossier3\&date1"
    alter session set NLS_NUMERIC_CHARACTERS=',.';
    column colonne1 format a17
    column colonne2 format a95
    select
    t1.xxxx as colonne1,
    t4.ccccc as colonne2,
    .........
    where t1.id=1
    // requete assez longue : requete 1
    ;
    
    spool off
    exit;
    résultat de la génération du fichier excel a partir du script :
    base 1 : environ 100000 ligne 120mo
    base2: ~120k ligne pour 125mo
    base3: ~140k de lignes pour 150mo

    pour cette requête ça marche nickel sur les 3 bases.

    Voici le script que j'utilise pour lequel il y a un souci :
    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
    30
    set echo off
    set newp none
    set termout off
    set feedb off
    set head on
    set heads on
    SET VERIFY OFF
    set linesize 7000 
    set trimspool on
    set underline off
    set pagesize 32000
    set colsep ";"
    define date1=foo 
    column date1 new_value date1
    select 'monfichier_2.csv'  date1 from dual;
    set termout on
    spool "D:\dossier1\dossier2\dossier4\&date1"
    alter session set NLS_NUMERIC_CHARACTERS=',.';
    column colonne1 format a20
    column colonne2 format a50
    SELECT  t1.xxxx as colonne1,
    t4.cccc as colonne2,
    
    ....
    ....
    where t1.id=5
    ;
    spool off
    exit;
    pour principe , je me suis basé sur la meme requête (requete1) la seul différent est dans le where où mon t1.id prend une autre valeur
    base1: 200k ligne 119mo
    base2: 150k de ligne pour 100mo
    base3: il tourne indefiniment jusqu'à atteindre les 2go , sachant que normalement je dois avoir environ 488k de ligne pour 220 /230 mo environ ( et encore je suis gentil , je me retrouve obligé de tourner la requete sur sqldeveloper, mais l'extration est super longue, presque une matinée et il atteind les 200mo généralement mais ça peut varié)

    et je ne sais pas d'où vient le problème :s

    Merci à vous

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Je ne comprend pas ce langage de script, je ne vais pas pouvoir t'aider.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 971
    Par défaut
    C'est du batch en fait, est ce que ce sont les détails qui sont obscur pour toi ou c'est le code qui est obscur pour toi?

    Merci quand même

Discussions similaires

  1. [Batch] Problème de génération de fichier excel via batch
    Par android59 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 05/12/2018, 09h55
  2. [Batch] Création de fichier excel via batch
    Par android59 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 14/03/2018, 10h13
  3. Réponses: 2
    Dernier message: 22/04/2016, 15h16
  4. [XL-2010] Fermeture fichier Excel via batch
    Par biquet52 dans le forum Excel
    Réponses: 7
    Dernier message: 06/01/2014, 20h59
  5. Réponses: 5
    Dernier message: 29/03/2011, 15h16

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