DFLOAT into column SFLOAT issue
Moderators: chulett, rschirm, roy
DFLOAT into column SFLOAT issue
Hi,
Please need your help to resolve fatal error issue.
The job design is ODBC Connector -> Copy -> DataSet
When I run the job, Iam getting the fatal error as below
OC_Connector: Schema reconciliation detected a size mismatch for column ConversionFactor. When reading database column DFLOAT into column SFLOAT, truncation, loss of precision or data corruption can occur. (CC_DBSchemaRules::reportSizeMismatch, file CC_DBSchemaRules.cpp, line 1,653)
One of the source column ConversionFactor is Float in source and having below values.
0.00083110025
0.001119538
3.707377834375
9999999
18585.5794375
40.3399
Right now the column ConversionFactor is having Float in the Dataset.
Any help would be appreciated.
Thanks,
Please need your help to resolve fatal error issue.
The job design is ODBC Connector -> Copy -> DataSet
When I run the job, Iam getting the fatal error as below
OC_Connector: Schema reconciliation detected a size mismatch for column ConversionFactor. When reading database column DFLOAT into column SFLOAT, truncation, loss of precision or data corruption can occur. (CC_DBSchemaRules::reportSizeMismatch, file CC_DBSchemaRules.cpp, line 1,653)
One of the source column ConversionFactor is Float in source and having below values.
0.00083110025
0.001119538
3.707377834375
9999999
18585.5794375
40.3399
Right now the column ConversionFactor is having Float in the Dataset.
Any help would be appreciated.
Thanks,
-
- Premium Member
- Posts: 1735
- Joined: Thu Mar 01, 2007 5:44 am
- Location: Troy, MI
Depending on the source database type it can be treated as dfloat/sfloat. You can define the column as double and then do the conversion using transformer.
Or since you are using connector, I think there should be a property where you can set what to be done in case of schema mismatch. I that case the job will not abort but please verify if there is no dataloss.
Or since you are using connector, I think there should be a property where you can set what to be done in case of schema mismatch. I that case the job will not abort but please verify if there is no dataloss.
Priyadarshi Kunal
Genius may have its limitations, but stupidity is not thus handicapped.
Genius may have its limitations, but stupidity is not thus handicapped.
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
-
- Premium Member
- Posts: 1735
- Joined: Thu Mar 01, 2007 5:44 am
- Location: Troy, MI
View data can be deceiving. The examples you gave hardly has 8 scale which dfloat (double) should not have any trouble handling. Make sure you have double mentioned throughout, including stage variables if you are using one to hold this field.
for a test dump the output to peek stage after converting it to string or decimal(38,16) and see if you actually have data loss by keeping it dfloat as well.
for a test dump the output to peek stage after converting it to string or decimal(38,16) and see if you actually have data loss by keeping it dfloat as well.
Priyadarshi Kunal
Genius may have its limitations, but stupidity is not thus handicapped.
Genius may have its limitations, but stupidity is not thus handicapped.
Thanks,
Cannot keep Float as datatype in OC connector, its getting failed.
Simple design.
1. OC connector -> Transformer -> Peak Stage
Result - >Getting failed, source datatype is Float
2. OC connector -> Transformer -> Peak Stage
Result - >Getting Success. source datatype is Double
I did conversation of DfloatToDecimal(Input) and iam not getting data as expected
Source -> Output
130.0625470625 -> 0000000000000000000130.0625470625000192
655.9845365 -> 0000000000000000000655.9845364999999488
Right now the output datatype is decimal (38,16)
Any other function other than DFloatToDecimal should be used.
Thanks,
Cannot keep Float as datatype in OC connector, its getting failed.
Simple design.
1. OC connector -> Transformer -> Peak Stage
Result - >Getting failed, source datatype is Float
2. OC connector -> Transformer -> Peak Stage
Result - >Getting Success. source datatype is Double
I did conversation of DfloatToDecimal(Input) and iam not getting data as expected
Source -> Output
130.0625470625 -> 0000000000000000000130.0625470625000192
655.9845365 -> 0000000000000000000655.9845364999999488
Right now the output datatype is decimal (38,16)
Any other function other than DFloatToDecimal should be used.
Thanks,
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
It is a given that computers cannot accurately store floating point numbers above a certain size. The IEEE published standards that are used widely and which offer the best compromise.
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.
Thanks,
Does it mean the values below coming from source (SQL server) as Float cannot be stored in the Datasets.
0.00083110025
0.001119538
3.707377834375
18585.5794375
40.3399
130.0625470625
655.9845365
I did not get "The IEEE published standards that are used widely and which offer the best compromise."
Thanks,
Does it mean the values below coming from source (SQL server) as Float cannot be stored in the Datasets.
0.00083110025
0.001119538
3.707377834375
18585.5794375
40.3399
130.0625470625
655.9845365
I did not get "The IEEE published standards that are used widely and which offer the best compromise."
Thanks,
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact: