BookmarkSubscribeRSS Feed
chandler
Fluorite | Level 6

This is SAS log excerpt:

 

 

 

%LET RNSOBKA = ;  %LET RNSOBKD = ;  %LET RNSOHSOD = ;  %LET RNSOBKP = ;  %LET RNSONFA = ;
114478    +%LET RNESBKA = ;  %LET RNESBKD = ;  %LET RNESHHOD = ;  %LET RNESBKP = ;  %LET RNESNFA = ;
114479    +%LET RNCUBKA = ;  %LET RNCUBKD = ;  %LET RNCUHSOD = ;  %LET RNCUBKP = ;  %LET RNCUNFA = ;
114480    +
114481    +%ren_exc(bp=PWM) ;
114481      region1_n region2_n region3_n SO_HSO_pct_nf;    SO_HSO_dollars = left(trim(put(Total_n,dollar14.)));    call symput("RNSOHSOD",trim(SO_HSO_dollars)) ;
114481   !     SO_HSO_pct_nf = left(trim(put(divide(Total_n,&RNSONFA.),percent7.2))) ;    call symput("RNSOHSOP",
                                                                     _
                                                                     159
ERROR 159-185: Null parameters for DIVIDE are invalid.

WARNING: The data set WORK.TOTAL_HS_OVERRIDES may be incomplete.  When this step was stopped there were 0 observations and 7 variables.
WARNING: Data set WORK.TOTAL_HS_OVERRIDES was not replaced because this step was stopped.

5 REPLIES 5
ballardw
Super User

I recommend considering using the function STRIP to reduce the number of parantheses involved. You find a lot of code with trim(left(<value>)) because a long time ago there was no single function to do that. Strip was introduced as an alternative to trim(left because we used that so frequently.

Kurt_Bremser
Super User

You do

%LET RNSONFA = ;

That causes the macro variable RNSONFA to be empty.

When you do

divide(Total_n,&RNSONFA.)

this resolves (after macro expansion/interpretation) to

divide(Total_n, )

which is invalid.

chandler
Fluorite | Level 6

I inherited this program from a programmer that left the company 3 months ago.  This report has been running on scheduler since then, without error.  Why is something that has been working all along, now causing an error ?

Kurt_Bremser
Super User

To really determine that, one would need a holistic view.

Complete code, everything concerning the scheduling, code of the system batch scripts, etc

Take a look at the revision history.

Something has changed, or the problem would have been there from the beginning.

CFC_SAS_Communities_400x225.jpg

Call for content now open!

It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.

Submit your proposal →

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 5 replies
  • 7328 views
  • 1 like
  • 4 in conversation