Take a look in my situation:
I've one table with some fields, but in my query I only use 2 fields
[ID NUMBER and DESC VARCHAR2(40)]
I've in this table 16694 records and my hihgest ID number is 48586.
I've added all the fields in oracle 8.1.7 and received an TIntegerField for the ID.
When I execute this program in a Oracle 10g database I receive an error informing that received an Integer and a Float was expected.
If I remove the fields, connect to Oracle 10g and insert the fields again this time I receive a TFloatField for the ID.
This only happens when the field in my table is defined like NUMBER when I use NUMBER(7) isnt happening.
My DBA opened an call in metalink and they informed him that there is no problem with our Oracle 10g installation and must be a problem with the software we was using.
Is there something I can do or I'll have to delete and insert all fields in my application prior my migration to oracle 10g?
I hope you can undestand me.
Best regards.
Field type diference between Oracle 8.1.7 and Oracle 10g
-
AlexandreECAD
- Posts: 40
- Joined: Wed 30 Nov 2005 15:55
- Location: Brazil
Type of the field created by ODAC depends on the field precision. By default TFloatField is created if the precision is more than 9. The problem is that the Oracle 8 and Oracle 10 databases returns different precision for this field.
You can change value of the IntegerPrecision variable from the OraClases unit to solve the problem. Use the initialization section of one of your program unit.
You can change value of the IntegerPrecision variable from the OraClases unit to solve the problem. Use the initialization section of one of your program unit.
Code: Select all
initialization
IntegerPrecision := 38;
end.-
AlexandreECAD
- Posts: 40
- Joined: Wed 30 Nov 2005 15:55
- Location: Brazil
-
Challenger
- Devart Team
- Posts: 925
- Joined: Thu 17 Nov 2005 10:53