Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2011, 13h32   #1
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Par défaut Augmenter taille d'une macro-variable?

Bonjour, j'ai le message d'erreur suivant:

Code :
1
2
3
4
5
 
ERROR: The length of the value of the macro variable LIST_VARIABLES_COL (549305) exceeds the maximum length (65534). The value has 
       been truncated TO 65534 characters.
ERROR: The text expression length (65535) exceeds maximum length (65534). The text expression has been truncated TO 65534 
       characters.
qui m'agace quelque peu, aussi je viens sur cet illustre forum demander une solution à mon bien tristre problème... existe t'il une option pour aggrandir (énormément...) la taille d'une macro-variable?

En vous remerciant par avance.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 13h35   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
je ne crois pas.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 14h00   #3
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Nooooooooooooonnnnnnnnnnnnn!!!!!!!!!! il faut qu'il y en ait une lol!

Plus sérieusement c'est ce dont je me doute aprés avoir parcouru google... c'est assez balot et... bête mais bon si c'est pas possible...
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 14h08   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Pour te consoler : quand j'ai appris à faire du SAS il y a bien longtemps, sur la version 6, c'était limité à 200 caractères par valeur. Heureusement que la capacité a augmenté depuis.
Seule solution à mes yeux : évaluer la longueur de la valeur et la scinder en plusieurs macro-variables de 65000 caractères chacune.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 14h43   #5
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Salut,
Tu es obligé de les avoir en ligne? sinon tu peux la stockée autrement.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 14h47   #6
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
une chaine de 65000 caractères c'est particulièrement long!

Il y a effectivement la possibilité de scinder ta macro variable en plusieurs.. Suivant la configuration du problème, j'envisagerais éventuellement de stocker l'information dans une table... Il y a parfois peut d'ajustement dans le code. C'est moins souple mais plus transparent!

Bon courage,

Manoutz
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/04/2011, 15h08   #7
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
C'est sûr qu'une table, au moins c'est extensible quasiment à l'infini.
On peut ensuite l'exploiter de manière quasiment équivalente à un code macro avec des instructions comme CALL EXECUTE (mais attention : en cas de code très long parfois CALL EXECUTE finit par se planter), ou une écriture du programme final dans un fichier texte (avec FILE/PUT dans une étape DATA) qu'on exécute ensuite avec un %INCLUDE.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 15h16   #8
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
L'idée de scinder est à envisager en effet, reste à la mettre en pratique dans mon code, là j'ai pas vraiment la motivation mais bon au moins je sais ce qu'il me reste à faire.

Merci à vous 4.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 15h16   #9
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Moi je verrai plutôt :

Code :
1
2
3
4
5
DATA _NULL_;
SET TABLE END=EOF;
IF EOF THEN CALL SYMPUT("NB",_N_);
CALL SYMPUT("MACR"!!LEFT(_N_),VAR);
RUN;
puis les appeler par
Code :
&&MACR&i pour i=1 TO &NB
mais je suppose qu'il les veut en liste.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 14h58   #10
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Salut Brice, merci pour ton bout de code, je vais y jeter un oeil d'ici la fin de la semaine surtout qu'il va falloir que je continue dans cet option.

Désolé de pas avoir répondu plus tôt mais avec le week-ends prolongé j'ai quelque peu décroché

Encore merci à toi!
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h22.


 
 
 
 
Partenaires

Hébergement Web