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

Macro Discussion :

Variabiliser le nom du fichier sortie


Sujet :

Macro

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 27
    Points
    27
    Par défaut Variabiliser le nom du fichier sortie
    Bonjour,

    J'aimerais récupérer le nom d'une variable dans le nom de mon fichier:

    ENVR.FIC1.D2017174.H100948.txt

    La variable ENVR peut changer selon la valeur d'une colonne de la table CODE_PART

    Si par exemple j'exécute mon programme sur:

    la base1 j'aurai EN01.FIC1.D2017174.H100948.txt
    la base2 j'aurai EN02.FIC1.D2017174.H100948.txt
    la base3 j'aurai EN03.FIC1.D2017174.H100948.txt

    ci-dessous le code que j'utilise:
    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
     
    %MACRO TRT_FICHIER;
    proc sql exec;
    	connect to netezza as dbcon (server=%sysget(serveurnz) database=%sysget(dsnnz) user=%sysget(usernz) password=%sysget(passwdnz));
    	create  table Salaire  as select * from connection to dbcon(
    		SELECT 
    			ROW_NUMBER() OVER (ORDER BY ROWID) AS LIG,
    			CODE_PART, 
    			NOMBRE
    		FROM NOMAG_FIC
    		ORDER BY ROWID;
    			);
    	disconnect from dbcon;
    quit;	
     
     
    DATA _NULL_;
    	SET Salaire;
        FILE "ENVR.FIC1.D%sysfunc(today(),JULIAN7.).H%sysfunc(strip(%sysfunc(time(),B8601TM8.))).txt" DLM='#' DSD;
    	PUT 
    		LIG CODE_PART NOMBRE;
    RUN;	
    	run;
    %mend;
    %TRT_FICHIER;
    Je vous remercie par avance pour votre aide.

    Cordialement
    Selva

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    De mémoire je crois qu'il y a une option FILEVAR dans l'instruction FILENAME : au lieu d'attendre un nom fixe, on dit dans quelle variable se trouve le nom du fichier (qui est à créer comme une variable caractère).
    A vérifier et tester.
    Bon courage.
    Olivier
    Bon courage.
    Olivier

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 27
    Points
    27
    Par défaut
    Merci pour votre retour.

    oui effectivement l'option FILVAR permet de renommer le fichier selon le contenu d'une variable.

    J'ai testé avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DATA _NULL_;
    	LENGTH Out_name $ 800;
    	SET Salaire;
    	Out_name="CODE_PART"||".FIC1.D%sysfunc(today(),JULIAN7.).H%sysfunc(strip(%sysfunc(time(),B8601TM8.))).txt";
        FILE writeout filevar=Out_name MOD DLM='#' DSD;
    	PUT 
    		LIG CODE_PART NOMBRE;
    RUN;
    Mais il m'affiche la valeur en dur CODE_PART.FIC1.D2017174.H115223.tx au lieu de EN01.FIC1.D2017174.H115223.txt

    Pourriez-vous svp me dire ce qu'il manque dans mon code?

    Merci

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Il ne manque rien, il y a un peu trop... de guillemets : pas besoin d'en avoir autour de CODE_PART :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out_name=CODE_PART||".FIC1.D%sysfunc(today(),JULIAN7.).H%sysfunc(strip(%sysfunc(time(),B8601TM8.))).txt";
    Bon courage.
    Olivier

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 27
    Points
    27
    Par défaut
    Oui, c'était ça
    Merci pour votre aide

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

Discussions similaires

  1. Macro variable dans le nom du fichier sortie
    Par milad92 dans le forum Macro
    Réponses: 6
    Dernier message: 29/12/2012, 12h45
  2. Génération d'un nom de fichier de sortie à partir de donnée d'un tMap
    Par Slyvore dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 10/04/2012, 14h57
  3. [DataStage] Calculer le nom du fichier de sortie
    Par blazDelParis dans le forum DataStage
    Réponses: 2
    Dernier message: 08/09/2010, 16h04
  4. Nom du fichier .txt de sortie en majuscules
    Par bletz dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 20/10/2008, 12h06
  5. Sortie standard et nom de fichier
    Par Invité dans le forum Linux
    Réponses: 3
    Dernier message: 26/10/2007, 13h30

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