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

SAS Base Discussion :

Récupérer une table sas pour la mettre dans un répertoire


Sujet :

SAS Base

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut Récupérer une table sas pour la mettre dans un répertoire
    Bonjour,

    Comment récupérer ma table sas paramétre pour la mettre dans un répertoire.
    Dans ma table paramétre j'ai des donées et je voudrais récupérer la table pour la mettre dans le répertoire qui a été récupérer (keep=rep).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data dessin.parametr ;
    set dessin.parametr1 ;
    length code $100 ;
    code='md "'!!trim(rep)!!'"' ; output ;
    code='cd "'!!trim(rep)!!'"' ; output ; 
    code='md "dessin.parametr"';output;
     
    code='exit'; output;
    run;

  2. #2
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Si j'ai bien compris dans t uas une table de paramètre qui contient un repertoire et le nome d'une table (plus sont libname).

    Pour la création du répertoir : voir la commande X, le sujet est déjà traité.
    Il faudra génèrer des macro variables qui contiennent le libname et le nom de la table, et le répertoire

    Utiliser les macros pour créer :
    Le libname qui pointe sur le répertoire (qui se trouve dans la table).
    génèrer le code data new_lib; set dessin.parametr; run;
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut
    c'est ce que fait en crée une macro mais j'arribe pas a crée mon fichier parmetr dans mon repertoire.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    /*enrgistrement de l'enrgistrement dans un fichier parametre*/
    data dessin.parametr1;
    infile 'C:\wamp\www\Dessin\sas_dessin\parametre.txt' lrecl=500 dlm='*' dsd pad missover;
    length ref_dossier $15 lib_fic $50 nom_fichier $50 no_fic $8 libelle $50 cle $8 no_fic $9
    dlm $5 recfm $1 lrecl $8 lzciv $8 lznom $8 lzprenom $8 lv2 $8 lv3 $8 lv4 $8 lv5 $8
    lxcp $8 lxvil $8 lv6 $8 pzciv $8 pznom $8 pzprenom $8 pv2 $8 pv3 $8 pv4 $8 pv5 $8 pxcp $8
    pxvil $8 pv6 $8fichier $50 lnum $8 lnumb $8 ltyp $8 lrue $8 pnum $8 pnumb $8 ptyp $8 prue $8
    codciv1 $10 codciv2 $10 codciv3 $10 codciv4 $10 codciv5 $10
    libciv1 $10  libciv2 $10 libciv3 $10 libciv4 $10 libciv5 $10 
    rep $100 annule $1 option $200 fichier $50 keep $200 place 4 
    exclus $20 priorite 8 prio_fic $1 optionb $200 ;
    input
    ref_dossier lib_fic nom_fichier no_fic libelle cle no_fic dlm recfm lrecl lzciv
    lznom lzprenom lv2 lv3 lv4 lv5 lxcp lxvil lv6 pzciv pznom pzprenom pv2 pv3 pv4 
    pv5 pxcp pxvil pv6 fichier lnum lnumb ltyp lrue pnum pnumb ptyp prue codciv1 
    codciv2 codciv3 codciv4 codciv5 libciv1 libciv2 libciv3 libciv4 libciv5 rep;
    run;
    data dessin.archive;
    set dessin.archive dessin.parametr1;
    run;
    data dessin.archive;
    set dessin.archive;
    if ref_dossier='' then delete;
    run;
    %macro creer_parametr (lib,rep) ;
     
         /*proc datasets nolist;
             copy in=_lib out=&lib  memtype=catalog;
             select parametr;
          quit;*/
     
          data &lib..parametr ;
          length no_fic 8 lib_fic rep $100 dlm $5 recfm $1 lrecl 8
                 lzciv lznom lzprenom lv2-lv4 lnum lnumb ltyp lrue lv5 lxcp lxvil lv6 8
                 pzciv pznom pzprenom pv2-pv4 pnum pnumb ptyp prue pv5 pxcp pxvil pv6 8
    			 codciv1-codciv5 libciv1-libciv5 $10
                 nomvar1 $8 lvar1 pvar1 8
                 nomvar2 $8 lvar2 pvar2 8
                 nomvar3 $8 lvar3 pvar3 8
                 nomvar4 $8 lvar4 pvar4 8
                 nomvar5 $8 lvar5 pvar5 8
                 annule $1 option $200 fichier $50 keep $200 place 4 exclus $20 priorite 8 
                 prio_fic $1 optionb $200 ;
          no_fic = '' ;
          lib_fic=''; rep = "&rep" ; dlm='' ; recfm = ''; lrecl =.;
          lzciv =.; lznom =.; lzprenom =.; lv2 =.;lv3 =.;lv4 =.;lv5 =.; lxcp =.; lxvil =.; lv6  =.;
    	  lnum=.; lnumb=.; ltyp=.; lrue=.;
          pzciv =.; pznom =.; pzprenom =.; pv2  =.;pv3  =.;pv4 =.;pv5 =.;pxcp =.; pxvil =.; pv6  =.;
    	  pnum=.; pnumb=.; ptyp=.; prue=.;
    	  codciv1=''; libciv1='';
          codciv2=''; libciv2='';
    	  codciv3=''; libciv3='';
    	  codciv4=''; libciv4='';
    	  codciv5=''; libciv5='';
          nomvar1=''; lvar1=. ; pvar1 = . ;
          nomvar2=''; lvar2=. ; pvar2 = . ;
          nomvar3=''; lvar3=. ; pvar3 = . ;
          nomvar4=''; lvar4=. ; pvar4 = . ;
          nomvar5=''; lvar5=. ; pvar5 = . ;
          annule = ' ' ; option = ' ' ; fichier = ' ' ;
          keep = '' ; place = . ; exclus = ' ' ; priorite = . ; prio_fic = ' ';optionb = ' ';
          output ;
          run ;
     
    %mend ;
    %creer_parametr ;
    proc fsbrowse data=dessin.archive;
    run;
     
    data dessin.parametr ;
    set arametr ;
    length test $100 ;
    test='md "'!!trim(rep)!!'"'; output;
    test='cd "'!!trim(rep)!!'"'; output; 
    test='md "parametr"';output;
    /*code='exit'; output;*/
    run;
     
    data _null_;
    set dessin.parametr;
    file "cree parametr.bat";
    put test;
    run;
    x ("cree parametr.bat");

  4. #4
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Défini un file avec un chemin vers un répertoire car SAS va le créer dans ses répertoire d'installation.
    N'utilise pas des espaces dans les nomsde fichier.
    Mets la commance X dans un data _null_
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut
    j'arrive a crée un dossier mais récupérer la table parametr que j'ai crée je n'arrive pas

    test='md "parametr"' ;output; Quand je fais ceci il me crée un dossier parametr alors que mois je voudrias récupérer ma table parametr

  6. #6
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Citation Envoyé par mioke Voir le message
    j'arrive a crée un dossier mais récupérer la table parametr que j'ai crée je n'arrive pas

    test='md "parametr"' ;output; Quand je fais ceci il me crée un dossier parametr alors que mois je voudrias récupérer ma table parametr
    Je ne comprends pas très bien "récupérer la table parametr"

    Tu veux stocker la table "parametr" dans le répertoire rep?
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  7. #7
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    quand tu fais un md => tu demandes la création d'un repertoire.

    Tu dois créer un libname qui pointe sur rep (en créant une macro variable à partir de ta table )
    et faire une étape data pour copier ta table dans ce libname.
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut
    Bonjour

    le md me permet de créer moj dossir dans mon repertoire.
    J'ai déja fait la macro variable que tu a pu voi dans mon code précédent.
    Mais je n'es pas compris l'étape data pour copier la table dans le libname.
    Merci

  9. #9
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Pour déplacer une table d'un répertoire vers un autre, tu as deux moyens :
    DOS :Exploiter la commande dos cp rep_source rep_destination
    SAS :à l'aide d'une étape data tu peux déplacer une table d'un répertoire source (un libname sur ce répertoire) vers un répertoire destination.
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut
    mois j'ai faid ceci

    test='copy "Y:\AZERTY\Programmes\dessin.sas" parametr' ; output ;
    Il me créer un fichier parametr dans le bon repertoire, mais ce fichier contient le code sas et non le résultat de la table.

  11. #11
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    SAS à fait ce que tu lui a demandé:
    'copy "Y:\AZERTY\Programmes\dessin.sas" parametr'
    Copie le fichier dessin.sas qui se trouve sous le répertoire Y:\AZERTY\Programmes dans parametr. Le programme fais ce que tu lui demande!!!!

    Tu veux plotot deplacer une table pas un programme
    'copy "repertoire ou ce trouve la table\parametr.sas7bdat" "repertoire destination de la table\parametr.sas7bdat"'
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut
    bonjour,

    Je voudrais reprendre mon probléme. J'ai réussi a enregistrer ma table parametre dans les répertoire concerné. Dans la table parametre il y'a des dessin d'enregistement. Mais le probléme c'est que je peut enregistré plusieur dessin dans la table parametre. Mais chaque table parametre on différente données selon le repertoire. Ma question comment faire la différence pour chaque répertoire pour cumulé mes données correctement dans chaque repertoire concerné.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    est ce que il y'a pas une autre foncton que copy parceque un chaque fois je n'est q'une seule ligne de données par table parametr dans un repertoire.
    Je ne sais pas comment explique mais il faudrais une table parametr par libname

  14. #14
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Tu peux utiuliser des macros variables pour des noms des noms différents aux tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    data table_&i; set table;
    run;
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/02/2013, 10h27
  2. Réponses: 0
    Dernier message: 25/01/2010, 14h16
  3. Comment créer une table sas pour gérer des queries
    Par arnaldo1974 dans le forum Administration et Installation
    Réponses: 1
    Dernier message: 02/12/2009, 14h39
  4. Réponses: 11
    Dernier message: 22/06/2009, 09h58
  5. Réponses: 7
    Dernier message: 24/04/2008, 11h53

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