improper datatype

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
dspxguy
Participant
Posts: 156
Joined: Thu May 24, 2007 4:09 pm
Location: Simi Valley, CA

improper datatype

Post by dspxguy »

I am getting this error

Code: Select all

Program "JOB.261291493.DT.1454834689.TRANS1": Line 165, Improper data type.
there is a sequential file ---transfoermer ---sequential file being used.

I check for the RT_BPnnn file and went to line 165, but couldnt understand what was the error.
DSguru2B
Charter Member
Charter Member
Posts: 6854
Joined: Wed Feb 09, 2005 3:44 pm
Location: Houston, TX

Post by DSguru2B »

A little bit more info on the design and what you are trying to achieve, will be helpful.
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

That or post the block of code around line 165 for us to see.
-craig

"You can never have too many knives" -- Logan Nine Fingers
dspxguy
Participant
Posts: 156
Joined: Thu May 24, 2007 4:09 pm
Location: Simi Valley, CA

Post by dspxguy »

chulett wrote:That or post the block of code around line 165 for us to see. ...
Guys thanks for your responses...

I will post the Basic Code tomorrow first thing in the morning :D
dspxguy
Participant
Posts: 156
Joined: Thu May 24, 2007 4:09 pm
Location: Simi Valley, CA

Post by dspxguy »

Code: Select all

    229         ERROR = Pin%%V0S1P1.REJECTEDCODE
    230 WHILE NOT(ERROR)
    231         * Stage variable evaluation
    232 IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
    233         V0S1.Stagevar%%1 = Pin%%V0S1P1.Column%%12
    234         V0S1.Stagevar%%2 = Pin%%V0S1P1.Column%%12
    235         V0S1.Stagevar%%3 =  if len(trim(computeTCV(Pin%%V0S1P1.Column%%5, Pin%%V0S1P1.Column%%6, Pin%%V0S1P1.Column%%7, Pin%%V0S1P1.Column%%8))) = 0 then 0 else computeTCV(Pin%%V0S1P1.Column%%5, Pin%%V0S1P1.Column%%6, Pin%%V0S1P1.Column%%7, Pin%%V0S1P1.Column%%8)
    236         V0S1.Stagevar%%4 = V0S1.Stagevar%%3 / Pin%%V0S1P1.Column%%5
    237         V0S1.Stagevar%%5 = Int(Pin%%V0S1P1.Column%%5 / 12)
    238         V0S1.Stagevar%%6 =  If V0S1.Stagevar%%5 <= 1 Then 0 Else V0S1.Stagevar%%3 / V0S1.Stagevar%%5
    239         V0S1.Stagevar%%7 =  If V0S1.Stagevar%%5 <= 1 Then V0S1.Stagevar%%3 Else V0S1.Stagevar%%3 - (V0S1.Stagevar%%6 * (V0S1.Stagevar%%5 - 1))
    240         V0S1.Stagevar%%8 =  If V0S1.Stagevar%%1 = 1 Then V0S1.Stagevar%%7 Else 0
    241         V0S1.Stagevar%%9 =  If Pin%%V0S1P1.Column%%5 - (V0S1.Stagevar%%1 - 1) < 12 Then V0S1.Stagevar%%4 * (Pin%%V0S1P1.Column%%5 - (V0S1.Stagevar%%1 - 1)) Else V0S1.Stagevar%%4 * 12
    242         V0S1.Stagevar%%10 = V0S1.Stagevar%%9 * (Pin%%V0S1P1.Column%%10 / 100)
    243         V0S1.Stagevar%%11 =  If Pin%%V0S1P1.Column%%5 - (V0S1.Stagevar%%1 - 1) < 12 Then (V0S1.Stagevar%%9 - V0S1.Stagevar%%10) / (Pin%%V0S1P1.Column%%5 - (V0S1.Stagevar%%1 - 1)) Else (V0S1.Stagevar%%9 - V0S1.Stagevar%%10) / 12
    244         V0S1.Stagevar%%12 =  If V0S1.Stagevar%%1 = Int(Pin%%V0S1P1.Column%%5) Then (V0S1.Stagevar%%3 - V0S1.Stagevar%%13) Else ( If V0S1.Stagevar%%1 = 1 Or Mod(V0S1.Stagevar%%1 - 1, 12) = 0 Then V0S1.Stagevar%%10 + V0S1.Stagevar%%11 Else V0S1.Stagevar%%11)
    245         V0S1.Stagevar%%13 =  If V0S1.Stagevar%%1 <> Int(Pin%%V0S1P1.Column%%5) Then ( If (V0S1.Stagevar%%22 = Pin%%V0S1P1.Column%%1 And V0S1.Stagevar%%23 = Pin%%V0S1P1.Column%%2 And V0S1.Stagevar%%24 = Pin%%V0S1P1.Column%%3) Then V0S1.Stagevar%%13 + V0S1.Stagevar%%12 Else V0S1.Stagevar%%12) Else V0S1.Stagevar%%13
    246         V0S1.Stagevar%%14 = Oconv(Iconv(Pin%%V0S1P1.Column%%9[1, 10], "D-YMD[4,2,2]"), "D/MDY[2,2,4]")[1, 2]    247         V0S1.Stagevar%%15 = Oconv(Iconv(Pin%%V0S1P1.Column%%9[1, 10], "D-YMD[4,2,2]"), "D/MDY[2,2,4]")[7, 4] + INT((V0S1.Stagevar%%14 + (V0S1.Stagevar%%2 - 1)) / 12)    248         V0S1.Stagevar%%16 =  IF INDEX(Pin%%V0S1P1.Column%%11, 24, 1) <> 0 OR INDEX(Pin%%V0S1P1.Column%%11, 25, 1) <> 0 OR INDEX(Pin%%V0S1P1.Column%%11, 40, 1) <> 0 OR INDEX(Pin%%V0S1P1.Column%%11, 41, 1) <> 0 OR INDEX(Pin%%V0S1P1.Column%%11, 42, 1) <> 0 OR INDEX(Pin%%V0S1P1.Column%%11, 43, 1) <> 0 OR INDEX(Pin%%V0S1P1.Column%%11, 44, 1) <> 0 THEN 2 ELSE  IF INDEX(Pin%%V0S1P1.Column%%11, 17, 1) <> 0 THEN 3 ELSE  IF INDEX(Pin%%V0S1P1.Column%%11, 18, 1) <> 0 THEN 4 ELSE  IF LEN(Pin%%V0S1P1.Column%%11) = 0 THEN 1 ELSE 1    249         V0S1.Stagevar%%17 =  IF MOD((V0S1.Stagevar%%14 + (V0S1.Stagevar%%2 - 1)), 12) = 0 THEN 12 ELSE  IF LEN(MOD((V0S1.Stagevar%%14 + (V0S1.Stagevar%%2 - 1)), 12)) = 1 THEN "0" : MOD((V0S1.Stagevar%%14 + (V0S1.Stagevar%%2 - 1)), 12) ELSE MOD((V0S1.Stagevar%%14 + (V0S1.Stagevar%%2 - 1)), 12)
 
error is on line 242....improper data..
gateleys
Premium Member
Premium Member
Posts: 992
Joined: Mon Aug 08, 2005 5:08 pm
Location: USA

Post by gateleys »

Looks like you are performing arithmetic on some non-numeric columns. Check the data in those columns. You may want to test by first passing few rows to see if the result occurs. If it does, then you can narrow it down to the calculation columns for non-numeric value.

Alternatively, you may want to check the suspect columns with the num() function to see if they consist of only numbers.
gateleys
Post Reply