Warning MSgs

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
kumar3846
Participant
Posts: 36
Joined: Mon Jan 09, 2006 2:58 pm

Warning MSgs

Post by kumar3846 »

APT_CombinedOperatorController,1: APT_DecimalNumber::analyzeAndPrepare:divisor is 0.

APT_CombinedOperatorController,1: APT_DecimalNumber::analyzeAndPrepare:parameter(s) are invalid or not normalized.
APT_CombinedOperatorController,1: APT_Decimal::operator=: the source decimal has even precision, but non-zero in the leading nybble, or is too large for the destination decimal.

I am getting this warning for calulation (a/b)*c
a is decimal nullable
b is decimal nullable
c is decimal nullable


Please help me out

Thank you
meena
Participant
Posts: 430
Joined: Tue Sep 13, 2005 12:17 pm

Re: Warning MSgs

Post by meena »

Hi,
I think this error is because of the decimal divided by zero. The value of b is zero or null. Try with a Stage variable or a routine that can send values other than zero or null.
Or write a stage variable to check for b value in if else condition.Something like this:

Code: Select all

 IF (IN.b=0 or IsNull(IN.b) or IN.b="") then a*c else (a/b)*c.
Check it. I am not sure whether this work for your specification or not.
APT_CombinedOperatorController,1: APT_DecimalNumber::analyzeAndPrepare:divisor is 0.

APT_CombinedOperatorController,1: APT_DecimalNumber::analyzeAndPrepare:parameter(s) are invalid or not normalized.
APT_CombinedOperatorController,1: APT_Decimal::operator=: the source decimal has even precision, but non-zero in the leading nybble, or is too large for the destination decimal.

I am getting this warning for calulation (a/b)*c
a is decimal nullable
b is decimal nullable
c is decimal nullable


Please help me out

Thank you
kumar3846
Participant
Posts: 36
Joined: Mon Jan 09, 2006 2:58 pm

Post by kumar3846 »

Thanks for respodning to my msg b is also decimal , it have 0s in 0.00.. format even i tried that way still its giving warning msgs please help me out this
kris007
Charter Member
Charter Member
Posts: 1102
Joined: Tue Jan 24, 2006 5:38 pm
Location: Riverside, RI

Post by kris007 »

Convert or read "b" as integer and then perform the division as suggested by Meena. That should get rid of the warnings.
Kris

Where's the "Any" key?-Homer Simpson
meena
Participant
Posts: 430
Joined: Tue Sep 13, 2005 12:17 pm

Post by meena »

Hi Kumar,
If are sure that input value for b is 0.00 then have you tried replacing the 0 with 0.00 in the expression.
Else if you are not then What is the length of the b column? The zero's may be in the form of 0.00 or 00.00. In this case try to pad zero's for the complete length of the column. (ex : (4,2) then 0000.00) . Based on the length change the expression.
b is also decimal , it have 0s in 0.00.. format even i tried that way still its giving warning msgs please help me out this
kumar3846
Participant
Posts: 36
Joined: Mon Jan 09, 2006 2:58 pm

Post by kumar3846 »

If
(IsNull(a) Or IsNull(b) Or IsNull(c))

Then SetNull()
Else If

(IsNotNull(a) And IsNotNull(c))
And (IsNotNull(b) = 0000000000.0000 Or
IsNotNull(b) = 0)
Then (a* c)

Else If
(IsNotNull(a) And IsNotNull(b)And IsNotNull(c))
Then
(a/ b) * (c) Else SetNull()
kumar3846
Participant
Posts: 36
Joined: Mon Jan 09, 2006 2:58 pm

Post by kumar3846 »

If
(IsNull(a) Or IsNull(b) Or IsNull(c))

Then SetNull()
Else If

(IsNotNull(a) And IsNotNull(c))
And (IsNotNull(b) = 0000000000.0000 Or
IsNotNull(b) = 0)
Then (a* c)

Else If
(IsNotNull(a) And IsNotNull(b)And IsNotNull(c))
Then
(a/ b) * (c) Else SetNull()


Still iam getting same warnings i could't figured out what happenening
Post Reply