compilation error "string too large"

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
kollurianu
Premium Member
Premium Member
Posts: 614
Joined: Fri Feb 06, 2004 3:59 pm

compilation error "string too large"

Post by kollurianu »

Hi All,

i got a compilation error

Compiling: Source = 'RT_BP2089/JOB.984735793.DT.1394537298.TRANS1', Object = 'RT_BP2089.O/JOB.984735793.DT.1394537298.TRANS1'
************************************************ Input string too long, limit 8192
(idEXECCOMPARE1.Transformer_5)

As iam comparing newrec and oldrec i have concatenated all the fields and
did comparings the input fields are around 125 ,

so i got the above error is there any way that i could fix this issue

Any ideas , greatly appreciated...

Thanks alot ..............
kcbland
Participant
Posts: 5208
Joined: Wed Jan 15, 2003 8:56 am
Location: Lutz, FL
Contact:

Post by kcbland »

Break your long constraint into sections using stage variables, and then compare a set of stage variables in the constraint. Your text is too long.
Kenneth Bland

Rank: Sempai
Belt: First degree black
Fight name: Captain Hook
Signature knockout: right upper cut followed by left hook
Signature submission: Crucifix combined with leg triangle
kollurianu
Premium Member
Premium Member
Posts: 614
Joined: Fri Feb 06, 2004 3:59 pm

Post by kollurianu »

wonderful idea Kenneth!!! but what is the max size of the string that datastage holds ...accordingly i would split the string to so many parts...

Thanks alot..........
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

I've reached the limit in the graphical object size, I seem to recall part of the error message told you; perhaps it is 512 or 1024 bytes. If you are close, change then name of your incoming link(s) to just 1 letter, that will significantly reduce the overall string length. The best solution for long-term maintenance is to split the unwieldy line into several ones, though.
kcbland
Participant
Posts: 5208
Joined: Wed Jan 15, 2003 8:56 am
Location: Lutz, FL
Contact:

Post by kcbland »

The error message indicates 8192 bytes is the limit.

Arnd: The problem is a long constraint expression (See other posts regarding this).
Kenneth Bland

Rank: Sempai
Belt: First degree black
Fight name: Captain Hook
Signature knockout: right upper cut followed by left hook
Signature submission: Crucifix combined with leg triangle
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

I missed the 8Kb in the message. Still, that long expression used a longish link name, chopping that down to 1 could save enough bytes to compile, though.
kollurianu
Premium Member
Premium Member
Posts: 614
Joined: Fri Feb 06, 2004 3:59 pm

Post by kollurianu »

i did not get clearly is the string too large or the value in the string is too long , when i checked that the length of the string value is 3350 bytes,so what did it mean 8kb , means string is too large...
i just had 2 stage variables one is for the current record and one is for the old record.

so please any one could clarify me....

Thanks alot.....
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

I think you were using a builting null handling function, which gets expanded inline before compilation.
kollurianu
Premium Member
Premium Member
Posts: 614
Joined: Fri Feb 06, 2004 3:59 pm

Post by kollurianu »

Thanks alot Arnd!
so how it needs to be split....just randomly 2 or 3 parts ...

so is it the value in the stage variabes too long or stage variable is too long , just trying to understand..

Any ideas...
Thanks alot..
kumar_s
Charter Member
Charter Member
Posts: 5245
Joined: Thu Jun 16, 2005 11:00 pm

Post by kumar_s »

Was record/field delimiter properly set?
Impossible doesn't mean 'it is not possible' actually means... 'NOBODY HAS DONE IT SO FAR'
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

The value of the text is too long
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

It's the actual expression that is too long. You need to create the same logic in a routine, and invoke that. Or to break up the long expression into a number of smaller ones, storing the intermediate results in stage variables, and logically combine the results there. I have created jobs that tested over 100 separate columns (reporting errors separately) by this means; they are still fairly efficient.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
kollurianu
Premium Member
Premium Member
Posts: 614
Joined: Fri Feb 06, 2004 3:59 pm

Post by kollurianu »

Ray Thanks alot for ur response , i would try that way.

thanks alot every one....
parag.s.27
Participant
Posts: 221
Joined: Fri Feb 17, 2006 3:38 am
Location: India
Contact:

Post by parag.s.27 »

Hi,

I also had the same scenario where i need to concatenate all input fields to a single output fields and input has 325 columns.

Try to have two stage variables where in one have one you concat one and in other concat another.

then you compare these two stage variables

If you still get the problem then define the output column as Varchar with length 65536. then in this output column u concat all input columns.

cheers
Thanks & Regards
Parag Saundattikar
Certified for Infosphere DataStage v8.0
Post Reply