BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
saspert
Pyrite | Level 9
Hello,
I am getting this error even before EG gets to my code.

1 The SAS System 11:07 Friday, February 18, 2011

1 ;*';*";*/;quit;run;
WARNING: The quoted string currently being processed has become more than 262 characters long. You may have unbalanced quotation
marks.
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL=%NRBQUOTE(Code3);
4 %LET _EGTASKLABEL=%NRBQUOTE(Code3);
5 %LET
5 ! _CLIENTPROJECTNAME=%NRBQUOTE(/sasdev/o...m/r...t/p..i/p..s/e..P/R..2/D...e/reporting_pilot_project/reporti
5 ! ng_pilot_project.egp);
6 %LET _SASPROGRAMFILE=;
NOTE 49-169: The meaning of an identifier after a quoted string may change in a future SAS release. Inserting white space between
a quoted string and the succeeding identifier is recommended.
1 ;*';*";*/;quit;run;
_________________
49

7
8 ODS _ALL_ CLOSE;
9 OPTIONS DEV=ACTIVEX;
WARNING: The quoted string currently being processed has become more than 262 characters long. You may have unbalanced quotation
marks.
10 FILENAME EGHTML TEMP;

I found this note 9537 - Character string longer than 250 characters on a single line in Program Editor not interpreted correctly. But I dont have any variables that are 250 characters long.

Any suggestions?

Thanks,
1 ACCEPTED SOLUTION

Accepted Solutions
Cynthia_sas
SAS Super FREQ
Hi:
As I said, you can have an outrageously long macro variable that will not cause a WARNING until you go to use it. In the example below &_CLIENTPROJECTNAME is quite long (380 characters), but the TITLE statement is unhappy with it.
[pre]
2856 %LET
2857 _CLIENTPROJECTNAME=%NRBQUOTE(a234567890/b234567890/c234567890/d234567890/e234567890/f2345
2857! 67890/g234567890/h234567890/i234567890/j234567890/k234567890/l234567890/m234567890/n234567
2857! 890/o234567890/p234567890/q234567890/r234567890/s234567890/t234567890/u234567890/v23456789
2857! 0/w234567890/x234567890/y234567890/z234567890/aa34567890/bb34567890/cc34567890/sub_directo
2857! ry/reporting_project/reporting_pilot_project.egp);
2858
2859
2860 proc print data=sashelp.class;
SYMBOLGEN: Macro variable _CLIENTPROJECTNAME resolves to
a234567890/b234567890/c234567890/d234567890/e234567890/f234567890/g234567890/h234567
890/i234567890/j234567890/k234567890/l234567890/m234567890/n234567890/o234567890/p23
4567890/q234567890/r234567890/s234567890/t234567890/u234567890/v234567890/w234567890
/x234567890/y234567890/z234567890/aa34567890/bb34567890/cc34567890/sub_directory/rep
orting_project/reporting_pilot_project.egp
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been
unquoted for printing.
2861 title "&_CLIENTPROJECTNAME";
WARNING: The quoted string currently being processed has become more than 262 characters long.
You may have unbalanced quotation marks.
2862 run;
[/pre]


The only other thing I can think of is the possibility that you have a parameter value with unprotected quotes that is sending your code off into what I call "confused quote-land". So even though you don't have overly long strings or assignment statements, the mismatched quote makes it look like there is an unmatched string. See below. Notice the very first TITLE statement has a missing single quote ...
[pre]
2863 title 'This is My Report ;
2864 proc print data=sashelp.class;
2865 var name age sex height weight;
2866 run;
2867
2868 proc report data=sashelp.shoes nowd;
2869 column region product sales,(n min mean max);
2870 define region / group;
2871 define product/ group;
2872 define sales/ "Sales";
2873 define n / "Count";
WARNING: The quoted string currently being processed has become more than 262 characters long.
You may have unbalanced quotation marks.
2874 define min / "Minimum";
2875 define mean / "Average";
2876 define max / "Maximum";
2877 rbreak after / summarize;
2878 run;
2879
2880 proc freq data=sashelp.prdsale;
2881 tables region country prodtype division;
2882 run;
2883
2884 proc means data=sashelp.prdsale;
2885 class prodtype;
2886 var actual predict;
2887 title Proc Means';
2888 run;
[/pre]

Until you resolve whether it's a possible mismatched quote situation, or a quote in a parameter value or one of the other issues mentioned in the Tech Support notes, you'll probably continue to have issues with your stored process.

cynthia
http://support.sas.com/kb/36/656.html (mismatched o'clock in EG Footnote in a stored process) or
http://support.sas.com/kb/19/496.html (quotes in parameter values might cause errors)

View solution in original post

5 REPLIES 5
Cynthia_sas
SAS Super FREQ
Hi:
If this post is related to your posts in the other forums about your stored process and the creation of macro variables and how the macro variables seem to resolve differently in different client applications, then your best resource for resolving this issue is to work with Tech Support.

Also, about this statement:
9537 - Character string longer than 250 characters on a single line in Program Editor not interpreted correctly. But I dont have any variables that are 250 characters long.


The note isn't about variable values -- the note says a "character string" or datalines value that ends up exceeding the line length for the code compiler.

So even though you might not have DATASET variables that are longer than 250 characters, if you have macro variables that contain long strings, this could also happen -- if you code had some outrageously long string from a macro variable in an assignment statement -- but the value split across multiple lines in the Program Editor. Or a very long parameter macro value, used in code, could end up spanning multiple lines in the code that's sent to the code compiler.

The WARNING is just a WARNING -- the dataset still gets created correctly, as shown in the LOG below for WORK.NEW. In this sample code, the macro variable &LONGWORD is OK in a %PUT statement --even at 300 characters because the %PUT is writing to the log from the macro facility -- however, &LONGWORD used in an assignment statement, causes the same message (as in your code) to be issued. Perhaps in your code, you have a macro variable value or macro parameter value that is resolving to a longer than 262 character string and this is causing issues with the code compiler???
[pre]
1313 options nomprint nosymbolgen;
1314 ** word is 10 characters;
1315 %let word = word567890;
1316
1317 ** word2 is 150 characters;
1318 %let word2 =
1318! &word.&word.&word.&word.&word.&word.&word.&word.&word.&word.&word.&word.&word.&word.&word;
1319
1320 ** longword is 300 characters;
1321 %let longword = &word2.&word2;
1322 %let lengthlw = %sysfunc(length(&longword));
1323 %put ------ ------ ------ ------;
------ ------ ------ ------
1324 %put lengthlw = &lengthlw;
lengthlw = 300
1325 %put longword=&longword;
longword=word567890word567890word567890word567890word567890word567890word567890word567890word567
890word567890word567890word567890word567890word567890word567890word567890word567890word567890wor
d567890word567890word567890word567890word567890word567890word567890word567890word567890word56789
0word567890word567890
1326 %put ------ ------ ------ ------;
------ ------ ------ ------
1327
1328 options mprint symbolgen;
1329 data new;
1330 length
SYMBOLGEN: Macro variable LENGTHLW resolves to 300
1330! bigbigvar $&lengthlw;
1331 bigbigvar = "&longword";
SYMBOLGEN: Macro variable LONGWORD resolves to
word567890word567890word567890word567890word567890word567890word567890word567890word
567890word567890word567890word567890word567890word567890word567890word567890word5678
90word567890word567890word567890word567890word567890word567890word567890word567890wo
rd567890word567890word567890word567890word567890
WARNING: The quoted string currently being processed has become more than 262 characters long.
You may have unbalanced quotation marks.
1332 run;

NOTE: The data set WORK.NEW has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
[/pre]

And, it's possible that these may be more relevant Tech Support notes:
http://support.sas.com/kb/19/496.html
http://support.sas.com/kb/36/656.html

cynthia
saspert
Pyrite | Level 9
Thank you Cynthia for the explanation. Both the data step and macro variables are lesser than 262 characters in length.

This warning appears even before it gets to my code. So, I am thinking maybe it is a lengthly EG project name issue (see line 5 in my log). I was trying to see if someone had a similar issue here.
Cynthia_sas
SAS Super FREQ
Hi:
As I said, you can have an outrageously long macro variable that will not cause a WARNING until you go to use it. In the example below &_CLIENTPROJECTNAME is quite long (380 characters), but the TITLE statement is unhappy with it.
[pre]
2856 %LET
2857 _CLIENTPROJECTNAME=%NRBQUOTE(a234567890/b234567890/c234567890/d234567890/e234567890/f2345
2857! 67890/g234567890/h234567890/i234567890/j234567890/k234567890/l234567890/m234567890/n234567
2857! 890/o234567890/p234567890/q234567890/r234567890/s234567890/t234567890/u234567890/v23456789
2857! 0/w234567890/x234567890/y234567890/z234567890/aa34567890/bb34567890/cc34567890/sub_directo
2857! ry/reporting_project/reporting_pilot_project.egp);
2858
2859
2860 proc print data=sashelp.class;
SYMBOLGEN: Macro variable _CLIENTPROJECTNAME resolves to
a234567890/b234567890/c234567890/d234567890/e234567890/f234567890/g234567890/h234567
890/i234567890/j234567890/k234567890/l234567890/m234567890/n234567890/o234567890/p23
4567890/q234567890/r234567890/s234567890/t234567890/u234567890/v234567890/w234567890
/x234567890/y234567890/z234567890/aa34567890/bb34567890/cc34567890/sub_directory/rep
orting_project/reporting_pilot_project.egp
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been
unquoted for printing.
2861 title "&_CLIENTPROJECTNAME";
WARNING: The quoted string currently being processed has become more than 262 characters long.
You may have unbalanced quotation marks.
2862 run;
[/pre]


The only other thing I can think of is the possibility that you have a parameter value with unprotected quotes that is sending your code off into what I call "confused quote-land". So even though you don't have overly long strings or assignment statements, the mismatched quote makes it look like there is an unmatched string. See below. Notice the very first TITLE statement has a missing single quote ...
[pre]
2863 title 'This is My Report ;
2864 proc print data=sashelp.class;
2865 var name age sex height weight;
2866 run;
2867
2868 proc report data=sashelp.shoes nowd;
2869 column region product sales,(n min mean max);
2870 define region / group;
2871 define product/ group;
2872 define sales/ "Sales";
2873 define n / "Count";
WARNING: The quoted string currently being processed has become more than 262 characters long.
You may have unbalanced quotation marks.
2874 define min / "Minimum";
2875 define mean / "Average";
2876 define max / "Maximum";
2877 rbreak after / summarize;
2878 run;
2879
2880 proc freq data=sashelp.prdsale;
2881 tables region country prodtype division;
2882 run;
2883
2884 proc means data=sashelp.prdsale;
2885 class prodtype;
2886 var actual predict;
2887 title Proc Means';
2888 run;
[/pre]

Until you resolve whether it's a possible mismatched quote situation, or a quote in a parameter value or one of the other issues mentioned in the Tech Support notes, you'll probably continue to have issues with your stored process.

cynthia
http://support.sas.com/kb/36/656.html (mismatched o'clock in EG Footnote in a stored process) or
http://support.sas.com/kb/19/496.html (quotes in parameter values might cause errors)
mathias
Quartz | Level 8

I have this when I forget closing a quote or a semicolon somewhere.

Once I ran the program, EG gets stuck and you can't run anything anymore because something was never closed and he interprets evrything you run just as a long string instead of program instructions.

 

example : This breaks EG for me :


%macro importXls(id, ext);
    %let localFile = &localPath.\fff_&id.&ext;
    %put &=localFile
    /* never ended the put here */
%mend importXls;

And I can't just correct the code, add the semicolon, and run it. It will never work. I have to close EG.

 

Mahult
SAS Employee

One thing you can try that is just *slightly* easier than a close-restart is disconnecting the server: Right click on the server name > Disconnect. That's it. The next thing you do in EG that requires a server will start a new server session behind-the-scenes just as if you'd restarted EG. Keep in mind that doing a disconnect really is shutting down the server in the same way that closing EG would (e.g., WORK is gone), just a bit easier.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 92491 views
  • 4 likes
  • 4 in conversation