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 :

Taille maximale liste SQL en SAS [SQL]


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Taille maximale liste SQL en SAS
    Bonjour,

    J'ai besoin de créer une liste SQL très longue en utilisant SAS.

    SAS me donne comme "erreur" the length of the value "la liste" exceeds the maximum length. The value has been truncated to 65534.

    J'ai besoin d'augmenter la capacité de stockage mais je ne sais pas comment.

    Quelqu'un peut m'aider?

    Merci d'avance
    Jefbrel

  2. #2
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    On peut voir ton code?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par MEGAMIND2 Voir le message
    On peut voir ton code?
    Je travaille sur un autre pc mais je vais mettre le code qui pose problème dans la macro.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    proc sql noprint;
    select distinct variable into:liste departed by ' ' from la_table;
    quit;
    Le seul problème est que je récupère beaucoup trop d'obserations de la table.

  4. #4
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    La finalité c'est d'en faire quoi? je dis ça parce que tu peux stocker en colonne via une data _null_ , dans ce cas tu n'as pas de limite de taille

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par MEGAMIND2 Voir le message
    La finalité c'est d'en faire quoi? je dis ça parce que tu peux stocker en colonne via une data _null_ , dans ce cas tu n'as pas de limite de taille
    J'ai crée une macro qui contient plusieurs étapes. Cette variable est comme un identifiant donc j'utilise cette liste pour la parcourir et lancer plusieurs étapes pour chaque identifent avec %do

  6. #6
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Cette macro pourrait répondre à ton problème, au lieu de faire un scan de ta liste, il suffit d'appeler chaque élément de ta liste par &&var&i.

    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
    %MACRO _M(table=);
     
    	DATA CLASS;
    	SET &table.;
    	CALL SYMPUT("NB",_N_);
    	CALL SYMPUT(CATS("VAR",_N_),NAME);
    	RUN;
     
    	%DO k_=1 %TO &NB;
    		%PUT &&VAR&k_.;
    	%END;
     
    %MEND;
     
    %_M(table=SASHELP.CLASS);

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Je n'ai pas très bien compris le code. Je ne suis pas très à l'aise avec CALL SYMPUT. Je lancerai le code pour essayer de mieux comprendre.

    Mais je ne sais pas si j'ai été très clair, ce qui m'intéresse ce ne sont pas les valeurs distinctes d'une variable en particulier.

  8. #8
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Pour avoir chaque élément de ta liste, tu dois scanner la liste
    Alors qu'avec le call symput, tu n'as pas besoin de scanner.
    Dans cet exemple, var1=TOTO, var2=TITI, var2=TUTU
    J'ai fait un put pour que comprennes, pour ça il faut voir la log.

    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
     
    DATA TEST;
    INPUT NAME$;
    CARDS;
    TOTO
    TITI
    TUTU
    ;
    RUN;
     
     
    %MACRO _M(table=);
     
    	DATA CLASS;
    	SET &table.;
    	CALL SYMPUT("NB",_N_);
    	CALL SYMPUT(CATS("VAR",_N_),NAME);
    	RUN;
     
    	%DO k_=1 %TO &NB;
    		%PUT var&k_=&&VAR&k_.;
    	%END;
     
    %MEND;
     
    %_M(table=TEST);

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

Discussions similaires

  1. [DATA] Augmenter la taille maximale du nom des tables SAS
    Par bouazovic dans le forum SAS Base
    Réponses: 2
    Dernier message: 13/02/2015, 11h27
  2. [MVVM] Taille maximale d'une liste
    Par SIC83 dans le forum Silverlight
    Réponses: 8
    Dernier message: 12/06/2012, 09h47
  3. [Débutant] c# sql server taille Maximale de int
    Par mactar85 dans le forum C#
    Réponses: 3
    Dernier message: 19/03/2012, 16h41
  4. taille maximale d'un std:list
    Par TaymouWan dans le forum C++/CLI
    Réponses: 5
    Dernier message: 01/12/2011, 17h53
  5. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 17h39

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