@missaka wrote:
I wish i could select more than one reply as accepted solution. 😕 You and @draycut resolved the problem. Thank you very much.
I still had a doubt about part of the code: The "proc contents" show me that all vars were type Char. When i run the code with the "put diff=" line, i get a "WARNING: Maximum log size exceeded." message. If i comment the "put diff=" line, the warning disapears and the results remains the same. What is the purpose of this line?
If you have a line in a data step like:
put diff=;
then when the code you will display the value of the variable(s) in the log each time the instruction is encountered. One very common use of the Put is debugging a program, checking on values at one or more places in the execution to see if the code is doing what is expected. The put statement can also be used to write more interesting messages or write to an external file with lots of text control.
The put could execute once, or more times, per record in your data. If you have something like that inside a do loop in the data step you get one line put to the log per execution of the loop.
If you put enough lines then you can exceed the amount of memory that the log is intended to hold. So you get a warning like that. Removing the put means you aren't writing all that information in the log and so don't get the warning.
... View more