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
> >
> >
> >
> >
> >


Reply via email to