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
Datastage malfunction while adding a number to a huge number
Moderators: chulett, rschirm, roy
-
- Premium Member
- Posts: 103
- Joined: Tue Oct 14, 2003 4:07 am
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.
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.
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
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.
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.
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
-
- Participant
- Posts: 197
- Joined: Mon Feb 17, 2003 11:20 pm
- Location: India
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
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.
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.
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
-
- Participant
- Posts: 197
- Joined: Mon Feb 17, 2003 11:20 pm
- Location: India