why does Datastage not support Datatype INT8(serial8)

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

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

Post by ArndW »

Can you cast this as varchar(32) and define it as varchar(32) in the datastage column definition? I don't have access to Informix here. I am still surprised at your error message, since that is generated in SQL and not in datastage it doesn't make sense in this context.
singhald
Participant
Posts: 180
Joined: Tue Aug 23, 2005 2:50 am
Location: Bangalore
Contact:

Post by singhald »

Hi DSguru2B

We cannot use this ODBC stage because we are using informix stage this is plugin. we have use meta plugin. i know datastage6.0 doesnot support serial8 infmromix datatype. we have tried all the option , like we took integer, numeric , typecasting , but did'nt sucessed. please provide some resolution on this if you faced this type of prblem in past.

Singhal
Regards,
Deepak Singhal
Everything is okay in the end. If it's not okay, then it's not the end.
DSguru2B
Charter Member
Charter Member
Posts: 6854
Joined: Wed Feb 09, 2005 3:44 pm
Location: Houston, TX

Post by DSguru2B »

Forget the meta plugin for now. Does DS 6.0 DRS stage support Informix. If it does, create an odbc connection to your database and try to use the DRS stage. See whether you get an error with that.
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.
rhale
Premium Member
Premium Member
Posts: 7
Joined: Wed Sep 07, 2005 5:20 pm

Casting of Serial8 to interger

Post by rhale »

ray.wurlod wrote:How about

Code: Select all

SELECT o_abc_uid + 0 FROM tablename...
Hopefully the arithmetic will perform a legal implicit CAST.
If we cast serial8 to integer, it works fine. But the problem is the integer datatype stores whole numbers that range from -2,147,483,647 to 2,147,483,647, for 9 or 10 digits of precision. The largest SERIAL8 value that you can assign is 9,223,372,036,854,775,807. So, When you reach a value greater than 2 billion (which is quite possible), the code breaks up.
Is there any other way other than casting?
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

So cast as BigInt rather than Integer. BigInt is an eight-byte signed integer.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

So cast as BigInt rather than Integer. BigInt is an eight-byte signed integer.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply