Thanks! Applied. Tim.
On Tue, Dec 16, 2003 at 01:55:43PM +0100, Steffen Goeldner wrote: > Rerunning this test > > <http://www.xray.mpe.mpg.de/mailing-lists/dbi/2001-03/msg00626.html> > > against an Oracle 9.2.0.4 results in > > TYPE PREC SCALE NAME > 3 38 0 CINTEGER > 8 0 0 CNUMBER > 3 38 0 CNUMBER_38_0 > 3 11 2 CNUMBER_11_2 > 3 38 2 CNUMBER_XX_2 > 8 126 0 CFLOAT > 8 11 0 CFLOAT_11 > 8 63 0 CREAL > 8 126 0 CDOUBLE_PRECISION > 93 75 0 CDATE > > Note that PREC == 0 (instead of 126) for CNUMBER. > This is due to a fix for bug 2235818: > > Describing a NUMBER datatype with unspecified scale > through OCI now correctly returns a scale of -127. > > Many other OCI clients are upset by this change, e.g. > > <http://www.mail-archive.com/[EMAIL PROTECTED]/msg16517.html> > > BTW: Oracle addressed that problem in bug 2755842 and > introduced Event 10499 to restore the old behaviour. > > Patch attached. > > > Steffen > --- dbdimp.orig Thu Jun 12 02:04:36 2003 > +++ dbdimp.c Tue Dec 16 12:34:35 2003 > @@ -2194,6 +2194,9 @@ > if (fbh->scale == -127) { /* FLOAT, REAL, DOUBLE_PRECISION */ > sql_fbh.dbtype = SQL_DOUBLE; > sql_fbh.scale = 0; /* better: undef */ > + if (fbh->prec == 0) { /* NUMBER; s. Oracle Bug# 2755842, 2235818 */ > + sql_fbh.prec = 126; > + } > } > else if (fbh->scale == 0) { > if (fbh->prec == 0) { /* NUMBER */
