Hi Experts,
When I am running the job I am getting the following error (Warning):
Warning: "When binding output interface field "TDCID" to field "TDCID": Implicit conversion from source type "uint64" to result type "int8": Possible range limitation."
This is the last job in the sequence which is giving above warning. Can anyone please throw some light on the above warning ?
I tried converting the datatype to Numeric, Varchar
Basically TDCID is a database sequence value.
Thanks
Equivalent data type of Unit64 ?
Moderators: chulett, rschirm, roy
I was wondering what a "unit64" data type was.
A "uint" is an "unsigned integer" and the warning is telling you that there is a high probability that your unsigned 64bit integer source data won't all fit in your signed 8bit target integer field. You sure you have all them data types right?
![Wink :wink:](./images/smilies/icon_wink.gif)
A "uint" is an "unsigned integer" and the warning is telling you that there is a high probability that your unsigned 64bit integer source data won't all fit in your signed 8bit target integer field. You sure you have all them data types right?
-craig
"You can never have too many knives" -- Logan Nine Fingers
"You can never have too many knives" -- Logan Nine Fingers
Hi Chulett,chulett wrote:I was wondering what a "unit64" data type was.![]()
A "uint" is an "unsigned integer" and the warning is telling you that there is a high probability that your unsigned 64bit integer source data won't all fit in your signed 8bit target integer field. You sure you have all them data types right?
Yes all the Data Types are correct. This field has a data type "Number" in database, so I am using numeric in data stage. Also I have tried with NVarChar, but the warning still persists.
Kiran
So, what is your database? When you say "number" do you mean an Oracle NUMBER field with no precision (rather than something like NUMBER(10) in other words) or something else? Who decided it was a uint64?
And if your data types are correct, how were you planning on fitting everying from the source field into the target field, seeing how it holds significantly less than what you could be sending?
And if your data types are correct, how were you planning on fitting everying from the source field into the target field, seeing how it holds significantly less than what you could be sending?
-craig
"You can never have too many knives" -- Logan Nine Fingers
"You can never have too many knives" -- Logan Nine Fingers
My DataBase is Oracle. The field has a precision I am using Numberic(19) as data type.. Well we haven't mentioned anywhere Unit64 even at the database level.. still the above error throws it.chulett wrote:So, what is your database? When you say "number" do you mean an Oracle NUMBER field with no precision (rather than something like NUMBER(10) in other words) or something else? Who decided it was a uint64?
And if your data types are correct, how were you planning on fitting everying from the source field into the target field, seeing how it holds significantly less than what you could be sending?
All other fields are working fine apart from TDCID which is a sequence number and I am using a surrogate key generator to call this sequence as source name. So the columns are loaded with the precision they are assigned to.
As this filed is using a Sequence number is it a good practice to use a surrogate key generator or is there any other better approach ?
Kiran
What is the job that throws the warning doing?
Somewhere in there you are converting TDCID to an Integer.
What is the definition of your Oracle sequence? What's the maximum value. If that can go bigger than an Integer you need to rethink, if not you may want to align the datatype of the TDCID column to the maximum size of the sequence.
'Unit64' is in the title.
Somewhere in there you are converting TDCID to an Integer.
What is the definition of your Oracle sequence? What's the maximum value. If that can go bigger than an Integer you need to rethink, if not you may want to align the datatype of the TDCID column to the maximum size of the sequence.
'Unit64' is in the title.
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
It's not unit - it's uint - unsigned integer.
NUMBER(19) does not fit into a regular integer (32 bits) but does fit in a 64-bit structure. That's the 64 of uint64 in the data type.
uint64 is a data type. So talk of "equivalent" is moot. Since SQL does not support unsigned data types, there's no SQL equivalent. However, for what it's worth, the SQL equivalent of int64 (signed) is BigInt.
Somewhere in your job you've mapped this into a TinyInt (int8) data type. DataStage alerts you that not all 64-bit numbers will fit in an 8-bit structure.
NUMBER(19) does not fit into a regular integer (32 bits) but does fit in a 64-bit structure. That's the 64 of uint64 in the data type.
uint64 is a data type. So talk of "equivalent" is moot. Since SQL does not support unsigned data types, there's no SQL equivalent. However, for what it's worth, the SQL equivalent of int64 (signed) is BigInt.
Somewhere in your job you've mapped this into a TinyInt (int8) data type. DataStage alerts you that not all 64-bit numbers will fit in an 8-bit structure.
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.
ray.wurlod wrote:It's not unit - it's uint - unsigned integer.
NUMBER(19) does not fit into a regular integer (32 bits) but does fit in a 64-bit structure. That's the 64 of uint64 in the data type.
uint64 is a ...
Try Using BigInt in the DataStage because it maps to Numeric (19) of the Database.
Maximum Field Size: 20 (leading sign character will appear when content is negative)
Mask: s###################
s = Optional Sign, will only appear for Negative Content
# = Numeric Values, Maximum of 19