Datastage malfunction while adding a number to a huge number

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
MukundShastri
Premium Member
Premium Member
Posts: 103
Joined: Tue Oct 14, 2003 4:07 am

Datastage malfunction while adding a number to a huge number

Post by MukundShastri »

Hi All,

We are trying to do following (93000000000000000(93 followed with 15 zeros) + variable) in the datastage transformer where variable = 1,2,3.......
However datastage transformer is not giving proper result for this.
Typically the result we are getting is -
Variable value Result
1 93000000000000000
2 93000000000000000
.
.
5492 93000000000005400

In short , datastage is doing some malfunctioning while dealing with summation of such huge number in the transformer. Please note that the number of zeros after 93 cannot be reduced below 15 due to business rules.

If anybody has come across this situation, please inform how you resolved it ??

Thanks

Mukund Shastri
leomauer
Premium Member
Premium Member
Posts: 100
Joined: Mon Nov 03, 2003 1:33 pm

Post by leomauer »

The way it is described it sounds like the same old problem with TRUENUMERICS setting. It is set to 15 by default and the DataStage is not able to process larger integers.
So the suggestion will be to increase the TRUENUMERIC value let's say to 20. Just search the forums for directions.
BUT. As did it in our installation we discovered a bug:
The integer multiplication of numbers with at least 10 significant digits and the space in the front (like it may come from the flat file) aborts the job without any log messages.
If space is on the back of the number - no abort.
Even the routine with such a simple code as:
a = " 1234567890"
Ans = a * 1
aborts breaking the client connection.
Though when a = "1234567890 " - no abort.
When we put TRUENUMERICS back to defaults(15) - no aborts again.
We reported this bug to Ascential for DS 7.0 and they fount that the problem even worse in 7.5 - it does not abort but the results are incorrect.
That the last we heard from them since last week.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Use the SADD function rather than the arithmetic operator "+". By doing so you will suffer no loss of precision in integer arithmetic.

BTW, the configuration parameter to which leomauer is referring is actually called EXACTNUMERIC.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
sumitgulati
Participant
Posts: 197
Joined: Mon Feb 17, 2003 11:20 pm
Location: India

Post by sumitgulati »

Ray, I could not find SADD function anywhere. Where do we have it.

Regards,
-Sumit
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

You can find it in the DataStage BASIC manual. It is a valid function: though your expression remains red it will compile and run successfully.

If you want to switch off the red colour, which only signifies that the expression editor does not recognize the function name, edit the file called DSParams in your project directory on the server, adding SADD (and SSUB, SMUL and SDIV if you want all the string math functions) into the [Functions] section, following the protocols documented within the DSParams file.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
sumitgulati
Participant
Posts: 197
Joined: Mon Feb 17, 2003 11:20 pm
Location: India

Post by sumitgulati »

Thanks Ray, I could find that in the manual.

Thanks and Regards,
-Sumit
Post Reply