Page 1 of 1

Invalid precision value

Posted: Fri May 07, 2010 11:10 pm
by vipson
The job runs fine in Dev and Test environment. Today the developer promoted the job in Prod. And gets following error:
APT_CombinedOperatorController,0: Fatal Error: [IBM(DataDirect OEM)][ODBC Oracle Wire Protocol driver]Invalid precision value. Error in parameter 63.

I searched the posts here, and based on that:
1. The oracle field/column 63 is defined as VARCHAR2(1000) - source and target.
2. Job has the same as data type across all the stages
3. Precision is set to nothing - no value in the link grid.

This is true in Dev, Test and Prod for the same job.

I have asked developer to compare the DDL of that table in dev, test and prod. I will post the update later..

In the mean time, can you help me troubleshoot/solve this?

Posted: Fri May 07, 2010 11:43 pm
by chulett
I'm assuming these are two separate servers, yes? I was going to ask you to verify that the Oracle client installed on each was identical, but since you're using ODBC and the wire drivers, that doesn't come into play. So, check that the ODBC versions are identical and that your connections are defined with the same options across servers.

Posted: Sat May 08, 2010 6:29 am
by vipson
You are correct. Each environment has own server.
The ODBC drivers are of the same version.
The entry in .odbc.ini for the connection is also identical except for Oracle source/target server name, SID etc.
Oracle client is also of the same version..

Posted: Sat May 08, 2010 6:59 am
by chulett
Hmmm... ok. I have no idea what "parameter 63" would be but I doubt it would be as simple as the 63rd field in the record. And I don't think it's going to complain about an invalid precision value for a varchar field, should be one of your numeric fields.

With everything else being the same and (allegedly) the only difference being the Oracle instance being connected to, let us know what you find with the DDL comparison. I'd also be curious if you run the job in Dev or Test and point it to the Production instance, does the problem still occur? That answer could be... significant.

Posted: Sat May 08, 2010 9:53 am
by vipson
The DDLs are exactly same..

The developer exported the dsx as executable.
After trying all the debugging and investigations - which took us no where..we exported/imported the design version of the job, compiled in prod and it works...

I still don't get it..why only this one job needed to do that way..all the others are exported and imported as executable...

Problem is resolved.
Now this thing will bug me - why only one job needed to be imported as design version...if you can help me understand that will be great.

Posted: Sat May 08, 2010 10:01 am
by chulett
It just means there's some difference between the platforms that you haven't identified yet, could be with the C++ runtime / compiler, O/S patches, etc etc.

I would never promote PX executables across platforms, especially if a Transformer is in the job design. Unless my brain is complete cheese this morning, you'll see the 'Best Practice' people mention here is to migrate the job design and compile post-migration.

Posted: Sat May 08, 2010 2:42 pm
by vipson
I see your point.