Desktop productivity for business analysts and programmers

Data step failure

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 17
Accepted Solution

Data step failure

Hello

 

I'm not sure what this error means,

 

 %macro step0 ;
53         data sasdata.dialerfiles;
54         set /*dialer.mcp_manual_20170124*/
55         dialer2.qual_not_on_dialer_20170222_new  ;
56         dialer2.march_dialer ;
57         run;
58         %mend step0;
59         %step0;

 

NOTE: Line generated by the invoked macro "STEP0".
59          data sasdata.dialerfiles; set  dialer2.qual_not_on_dialer_20170222_new  ; dialer2.march_dialer ; run;
                                                                                      ____________________
                                                                                      557
ERROR: DATA STEP Component Object failure.  Aborted during the COMPILATION phase.
ERROR 557-185: Variable dialer2 is not an object.


Accepted Solutions
Solution
‎04-26-2017 08:35 AM
Esteemed Advisor
Posts: 6,646

Re: Data step failure

When posting log snippets, use the {i} icon/button to open a window that will preserve formatting.

 

You do have a semicolon between dialer2.qual_not_on_dialer_20170222_new and dialer2.march_dialer. Since the name.method notation is part of the hash object language (component objects), this explains the ERROR message.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers

View solution in original post


All Replies
Contributor
Posts: 33

Re: Data step failure

[ Edited ]

The character limit for dataset names (I believe) is 32. Try to shorten that up a little bit and let us know if it works then! It also seems to be complaining about dialer2 library not being valid? Maybe it's the long name throwing SAS off into a tizzy but you may need to look into that as well if it doesn't clear up after shortening. 

Respected Advisor
Posts: 4,969

Re: Data step failure

You have an extra semicolon in the middle of the SET statement.  If you are reading multiple data sets on the SET statement, there should still be only one semicolon at the end.

Solution
‎04-26-2017 08:35 AM
Esteemed Advisor
Posts: 6,646

Re: Data step failure

When posting log snippets, use the {i} icon/button to open a window that will preserve formatting.

 

You do have a semicolon between dialer2.qual_not_on_dialer_20170222_new and dialer2.march_dialer. Since the name.method notation is part of the hash object language (component objects), this explains the ERROR message.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Esteemed Advisor
Posts: 6,646

Re: Data step failure

I also seriously doubt the necessity of a macro definition for what you are doing, since no dynamic code is created by the macro.

Also always test code for itself before wrapping into a macro definition. Makes debugging easier.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
☑ This topic is SOLVED.

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

Discussion stats
  • 4 replies
  • 131 views
  • 1 like
  • 4 in conversation