floating point decimal not fully supported.

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
dsdev750
Charter Member
Charter Member
Posts: 16
Joined: Sat Jun 04, 2005 10:19 am

floating point decimal not fully supported.

Post by dsdev750 »

I am new to the parallel jobs and am having trouble running a simple job. I created a job having 2 Oracle Enterprise stages joined by a link.

The Source stage is reading from table aa

Person_Id NUMBER
first_name VARCHAR2(20)
last_name VARCHAR2(20)

the target table has exactly the same structure. I imported the metadata using DS Manager and executed the job.

However, I got the following error:

Oracle_Enterprise_0: Column PERSON_ID floating point decimal not fully supported. Adjusting scale.

Could you please help explain the cause.

Thanks.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Change the table definition so that NUMBER is constrained - for example NUMBER(38) - so that DataStage does not interpret it as unlimited (that is, floating point).
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
dsdev750
Charter Member
Charter Member
Posts: 16
Joined: Sat Jun 04, 2005 10:19 am

Re: floating point decimal not fully supported

Post by dsdev750 »

Thanks for the reply Ray.
Do we have to change the table structure in ORACLE. Isn't there a way in the datastage to overcome this. I am asking this because we have a lot of tables already defined with the datatype NUMBER.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

In Oracle, a datatype of NUMBER is the same as NUMBER(38). Ray meant for you to change the table definition in your DataStage metadata, not in the database itself.
-craig

"You can never have too many knives" -- Logan Nine Fingers
dsdev750
Charter Member
Charter Member
Posts: 16
Joined: Sat Jun 04, 2005 10:19 am

Post by dsdev750 »

I changed the metadata [ default : Decimal(38,10) ] to Decimal 38 [ in the DS job]. The data was written to the table. However, still got the following warnings:

Oracle_Enterprise_0: Column PERSON_ID floating point decimal not fully supported. Adjusting scale.

Oracle_Enterprise_0: When checking operator: When binding output interface field "PERSON_ID" to field "PERSON_ID": Implicit conversion; from source type "decimal[38,10]" to result type "decimal[38,0]": Possible precision limitation

Oracle_Enterprise_1: When checking operator: When binding input interface field "PERSON_ID" to field "PERSON_ID": Implicit conversion; from source type "decimal[38,0]" to result type "decimal[38,10]":

Possible range limitationOracle_Enterprise_1: When checking operator: Column PERSON_ID floating point decimal not fully supported. Adjusting scale.

Is there anything else that I need to do?
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Change the metadata to Decimal 38,0 (with an explicit zero)
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
dsdev750
Charter Member
Charter Member
Posts: 16
Joined: Sat Jun 04, 2005 10:19 am

Post by dsdev750 »

It is not saving a 0 in the scale column.

I explicitly entered 0 in the scale column and saved it. However, when I reopen the columns editor, the 0 is not there.
dsdev750
Charter Member
Charter Member
Posts: 16
Joined: Sat Jun 04, 2005 10:19 am

Post by dsdev750 »

I am still unable to run the job successfully. I really need to get this resolved ASAP. Any help is greatly appreciated.
Thanks again.
Post Reply