Sure!
Sorry for so slipshod hack, I needed to solve the problem very quickly.
Regards, Oleg
C:\SW_ENV\sw_env_1.3\DBD-Oracle-1.06>diff -u oci8.c.orig oci8.c
--- oci8.c.orig Thu Jul 13 22:42:17 2000
+++ oci8.c Thu Oct 4 22:14:13 2001
@@ -1250,8 +1250,16 @@
while( (sv = hv_iternextsv(lob_cols_hv, &p, &i)) != NULL ) {
char sql_field[200];
if (phs->ora_field) { /* must match this phs by field
name*/
- if (SvCUR(phs->ora_field) != SvCUR(sv)
- || ibcmp( SvPV(phs->ora_field,na), SvPV(sv,na),
SvCUR(sv) ) )
+ char bfield[256];
+ strcpy(bfield,SvPV(phs->ora_field,na));
+ if (bfield[0] == '\"' && bfield[strlen(bfield) - 1] == '\"')
{
+ strcpy(bfield, bfield + 1);
+ bfield[strlen(bfield) - 1] = 0;
+ }
+/* if (SvCUR(phs->ora_field) != SvCUR(sv)
+ || ibcmp( SvPV(phs->ora_field,na), SvPV(sv,na),
SvCUR(sv) ) )*/
+ if (strlen(bfield) != SvCUR(sv)
+ || ibcmp( bfield, SvPV(sv,na), SvCUR(sv) ) )
continue;
}
else /* basic dumb match by type */
@@ -1274,7 +1282,9 @@
}
}
matched = 1;
- sprintf(sql_field, "%s%s \"%s\"",
+
+
+ sprintf(sql_field, "%s\"%s\" \"%s\"",
(SvCUR(sql_select)>7)?", ":"", p, &phs->name[1]);
sv_catpv(sql_select, sql_field);
if (DBIS->debug >= 3)
----- Original Message -----
From: "Tim Bunce" <[EMAIL PROTECTED]>
To: "Oleg Bakiev" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Sunday, October 07, 2001 4:49 PM
Subject: Re: LOBs and case sensitive field names
> Thanks!
>
> Can you send me that as a context diff (diff -u oci8.c.orig oci8.c,
> or diff -c oci8.c.orig oci8.c)?
>
> Tim.
>
> On Sat, Oct 06, 2001 at 01:46:32AM +0400, Oleg Bakiev wrote:
> > Hi Tim.
> > I've found a bug in DBD::Oracle which is related to LOBs and case
sensitive
> > field names. I have to use 1.06 version but the bug still presents in
1.12.
> >
> > I've made a quick hack which fixes it:
> >
> > C:\SW_ENV\sw_env_1.3\DBD-Oracle-1.06>diff oci8.c.orig oci8.c
> > 1253,1254c1253,1262
> > < if (SvCUR(phs->ora_field) != SvCUR(sv)
> > < || ibcmp( SvPV(phs->ora_field,na), SvPV(sv,na),
SvCUR(sv) ) )
> > ---
> > > char bfield[256];
> > > strcpy(bfield,SvPV(phs->ora_field,na));
> > > if (bfield[0] == '\"' && bfield[strlen(bfield) - 1] ==
'\"') {
> > > strcpy(bfield, bfield + 1);
> > > bfield[strlen(bfield) - 1] = 0;
> > > }
> > > /* if (SvCUR(phs->ora_field) != SvCUR(sv)
> > > || ibcmp( SvPV(phs->ora_field,na), SvPV(sv,na),
SvCUR(sv) ) )*/
> > > if (strlen(bfield) != SvCUR(sv)
> > > || ibcmp( bfield, SvPV(sv,na), SvCUR(sv) ) )
> > 1277c1285,1287
> > < sprintf(sql_field, "%s%s \"%s\"",
> > ---
> > >
> > >
> > > sprintf(sql_field, "%s\"%s\" \"%s\"",
> >
> >
> > Regards, Oleg
> >
> >
> >
> >
> >