BATCH vs. INTERACTIVE EG-SESSION

Accepted Solution Solved
Reply
Contributor FK1
Contributor
Posts: 40
Accepted Solution

BATCH vs. INTERACTIVE EG-SESSION

[ Edited ]

Hello Everybody,

 

I came upon a very curious problem:

I have a code in which I use name literals:

 

data "dataset mit leerzeichen"n;
set sashelp.class;
"variable mit leerzeichen"n = 1;
run;

Now, when I run the above code in a interactive EG-Session, it works perfectly fine, i.e. no errors or warnings.

 

However, when I run the exact same code in Batch-Mode, I get the following ERROR MESSAGE:

 

ERROR: The name variable mit leerzeichen is not a valid SAS name.

 

  1. Obviously, there must exist some differences in BATCH vs. INTERACTIVE EG-SESSION mode. Related to the above issue, what is the difference?
  2. Is there a system option, that forces SAS BATCH-MODE to work exactly as in INTERACTIVE EG-SESSION mode?

Thanks in advance for any helpful pointing into the direction of solving this issue.

 

FK

 


Accepted Solutions
Solution
‎10-05-2017 12:35 PM
Valued Guide
Posts: 572

Re: BATCH vs. INTERACTIVE EG-SESSION

You can use Proc Optsave for that i.e.

 

proc optsave out=opts;
run;

View solution in original post


All Replies
Valued Guide
Posts: 572

Re: BATCH vs. INTERACTIVE EG-SESSION

Try putting the following two options statements at the start of your code

 

options validmemname=extend;
options validvarname=any;

data "dataset mit leerzeichen"n;
set sashelp.class;
"variable mit leerzeichen"n = 1;
run;

I can only assume you're using different autoexecs when running in batch and interactive with one containing the options and one not.

Contributor FK1
Contributor
Posts: 40

Re: BATCH vs. INTERACTIVE EG-SESSION

[ Edited ]
Posted in reply to ChrisBrooks

Hello Mr. Brooks,

 

thank you for your advice. It worked!

I do have a follow-up question, however:

 

Do you know how to output the system options into a SAS data set? I only get them into the LOG, when executing this code:

 

PROC OPTIONS;
RUN;

As a workaround one could of course divert the log with PROC PRINTTO:

 

filename divlog "/pathname/logdiverted.txt";

PROC PRINTTO LOG=divlog;
run;

PROC OPTIONS   ;
RUN;

However, I end up having a file on which I then would have to further work on.

Solution
‎10-05-2017 12:35 PM
Valued Guide
Posts: 572

Re: BATCH vs. INTERACTIVE EG-SESSION

You can use Proc Optsave for that i.e.

 

proc optsave out=opts;
run;
Super User
Posts: 13,338

Re: BATCH vs. INTERACTIVE EG-SESSION

Posted in reply to ChrisBrooks

ChrisBrooks wrote:

You can use Proc Optsave for that i.e.

 

proc optsave out=opts;
run;

and reload the options with

Proc optload data=opts;

run;

 

if you need to make option settings temporarily and then restore them (as often as needed).

Contributor FK1
Contributor
Posts: 40

Re: BATCH vs. INTERACTIVE EG-SESSION

Thanks everybody for your help! Glad to see, there are so many SAS Specialists :-)

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 408 views
  • 3 likes
  • 3 in conversation