Numeric data type conversion from Oracle to SQL Server

I am creating SSIS package. source data is Oracle, destination database is MSSQL 2008 R2


In Oracle, I have data type

The field "conversion_rate" 's data type is number. It results like this 6.16446800641105

In MS SQL,

I create a  corresponding table and a field and define data type is float

In the conversion task mapping

 I put NUMBERIC (DT_NUMBER),  precision =8, Scale=30

When I run the package, it fails

[OLE_SRC_RateTable [1208]] Error: There was an error with output column "CONVERSION_RATE" (1866) on output "OLE DB Source Output" (1218). The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".

[OLE_SRC_RateTable [1208]] Error: The "output column "CONVERSION_RATE" (1866)" failed because truncation occurred, and the truncation row disposition on "output column "CONVERSION_RATE" (1866)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "OLE_SRC_GLDailyRates" (1208) returned error code 0xC020902A.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.


Any idea how to fix? What is the fit data type and conversion type to there?
wasabi3689Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Koen Van WielinkBusiness Intelligence SpecialistCommented:
I put NUMBERIC (DT_NUMBER),  precision =8, Scale=30

I assume that the B in "NUMBERIC" is a typo in the question and not in your code?
0
wasabi3689Author Commented:
This is auto drop down to select from SSIS package.
0
Koen Van WielinkBusiness Intelligence SpecialistCommented:
Have you tried using the Numeric datatype in MSSQL instead of float? Numeric(15,14) would give you a field that should fit the example number you've given (15 is the total number of digits, and 14 indicates how many decimals to use). I believe the use of numeric is equal to the decimal datatype.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Vitor MontalvãoMSSQL Senior EngineerCommented:
Please verify the data type conversions from MSDN.
0
Scott PletcherSenior DBACommented:
Oracle number has (up to) 38 digits of precision, whereas float in SQL has only 15 digits of precision.

Try a data type of:
numeric(38, 16)
in SQL Server.
0
Alpesh PatelAssistant ConsultantCommented:
Try numeric ( , ) against number( , ) datatype of Oracle.

http://msdn.microsoft.com/en-us/library/ms151817.aspx

Check that Dtatype mapping between Oracle and SQL.
0
wasabi3689Author Commented:
I tried a data type of:
numeric(38, 16)
in SQL Server.

It still throws out the same error "...because truncation occurred..."
0
Vitor MontalvãoMSSQL Senior EngineerCommented:
You need SSIS to be able to execute the conversion first. If DT_NUMERIC can't handle it I'm afraid you need to accept the truncation.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server 2008

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.