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 :

Imporation de données : nombre maximum de caractères dans une variable


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Imporation de données : nombre maximum de caractères dans une variable
    Bonjour,

    J'ai un fichier xls avec une variable caractère que j'ai importé sous SAS. SAS me dit que tout va bien, mais quand je regarde la table, je vois que SAS n'a importé que les 1024 premiers caractères de chaque cellule (ce sont des textes un peu longs parfois)

    Est-ce une limite maximum ou peut on la dépasser ? Et si tel est le cas, comment le faire ? Le fait-on dans une proc import ?

    (j'ai la version SAS 9.2)

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    le maximum est : 32767 ,
    après sa depend de ce que t'as mis dans ton proc import ou la :
    data ;infile;

  3. #3
    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 : 47
    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
    Dans la proc IMPORT, il faut ajouter l'instruction
    pour importer jusqu'à 20 000 caractères par valeur. Comme l'indique SAM, le maximum est de 32 767.

    La syntaxe est la même que si tu utilises des options comme SHEET, GETNAMES ou MIXED.
    La doc ici.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Bonjour Olivier et merci beaucoup pour ton aide !!

    Du coup, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROC IMPORT DATAFILE="C:\Users\Socstat\Documents\remarquesquestionnaire.xls"
     
    OUT=remarquelongue DBMS=EXCEL2000 REPLACE;
     
    TEXTSIZE=30000;
     
    RUN;
    Mais ça ne marche toujours pas... le texte est coupé (en tout cas lorsque je visionne la table sous SAS)...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    Tu es sur que cela ne marche pas?

    J'ai bien testé le code et cela fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    data _NULL_;
       set remarquelongue;
       droit = substr(CHAMP,length(CHAMP) - 10);
       len = length(droit);
       put droit= len;
    run;
    donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    59   data _NULL_;
    60      set remarquelongue;
    61      droit = substr(CHAMP,length(CHAMP) - 10);
    62      len = length(CHAMP);
    63      put droit= len;
    64   run;
     
    droit=COUCOUHELLO 31324

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour ta réponse ! J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PROC IMPORT DATAFILE="C:\Documents and Settings\doctorant\Mes documents\Téléchargements\remarquesquestionnaire.xls"
    OUT=remarquelongue DBMS=EXCEL2000 REPLACE;
    TEXTSIZE=30000;
    RUN;
     
     
    DATA _NULL_;
       SET remarquelongue;
       len = length(_3749X11X68);
       put len;
    run;
    (le nom barbare _3749X11X68, c'est le nom de ma variable)

    et ça me donne des nombre toujours inférieures à 255, comme si ça coupait à 255 caractères !

  7. #7
    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 : 47
    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
    Juste pour savoir : tu as des valeurs longues dès le début de ton fichier texte ?
    Visiblement (cf. la page de doc que j'avais indiquée en lien), il peut y avoir des interférences avec la clé de registre TypeGuessRows qui contrôle le nombre de lignes du classeur à importer utilisées pour définir les caractéristiques des variables dans SAS.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Effectivement Olivier, il faut "attendre" la 29ème observation avant d'avoir un texte avec plus de 255 caractères. Dois je mettre une première observation bidon avec plus de 255 caractères (style "aaaaaaaaaaaaaaaaaaaaaaaaaa") ?

  9. #9
    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 : 47
    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
    Si tu as le droit de modifier ta base de registre, il serait plus judicieux de mettre la clé TypeGuessRows à 0. Ça prendrait en compte toutes les lignes et il y aurait moins de mystères.
    Mais sinon, effectivement, l'inclusion en 1e ligne d'une valeur bien bavarde serait une solution.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Du coup je n'ai pas touché au registre, parce que ça me semblait trop dangereux, en revanche j'ai copié collé ma variable la plus bavarde en première observation et c'est bon il prend tout, nickel !!!

    Merci à tous pour votre aide !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/10/2009, 08h28
  2. [Excel] Nombre maximum de caractères dans une cellule
    Par Student3010 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/08/2008, 11h54
  3. Réponses: 2
    Dernier message: 06/05/2008, 10h52
  4. nombre moyen de caractères dans une colonne
    Par yanice dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/06/2007, 12h30
  5. Réponses: 3
    Dernier message: 24/10/2005, 16h59

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