Date: Thu, 16 Mar 2000 18:17:42 +0100
Reply-To: peter.crawford@DB.COM
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Peter Crawford <peter.crawford@DB.COM>
Subject: CALL SYMPUT
Content-type: text/plain; charset=us-ascii
It is normal because,
even though you are pushing data into the macro environment, it is coming from
an expression in a data step. Such expressions deliver no more than 200 bytes in
v6.
So, your call symput("var",col1||col2||col3);
puts only the first 200 bytes of the concatenation into the macro variable VAR.
That's normal .
The normal behaviour of character variable concatenation is to respect the whole
length of the character variables. If there are trailing blanks in col1 or col2
that you wish removed, then you must code to do that
To eliminate those trailing blanks and preserve a blank between each
contributing variable
call symput("var",trim(col1)||' '||trim(col2)||' '||col3);
That's normal !
Datum: 16.03.2000 17:29
An: SAS-L@listserv.uga.edu
Betreff: CALL SYMPUT
Nachrichtentext:
I try this :
data _null_;
set tmac;
call symput("var",col1||col2||col3);
run;
length of col1 is 200
length of col2 is 200
length of col3 is 200
But macro VAR contains only the value of col1.
Is it normal ?