[DB-SIG] Parameters in DCOracle2

James Briggs James.Briggs@unisuper.com.au
Tue, 20 Aug 2002 10:12:02 +1000


To avoid breaking the index usage, you could try:

    cursor.execute("select * from table where nombre like :1||'%'",  =
nombre)

Of course you still have to test the nombre you now have is "SAENS" with =
optional trailing spaces and not "SAENSA", but at least your using the =
database index to only fetch the rows that possible match. I guess the =
ugliness of the extra code is the price for having trailing spaces in the =
database...

buena suerte

James

>>> Marcos S=E1nchez Provencio <msanchez@grupoburke.com> 20/08/2002 =
4:04:36 am >>>
I expect this to break index usage, I suppose...

El lun, 19-08-2002 a las 15:05, Matthew T. Kromer escribi=F3:
> I think you're really after something like
>=20
>       cursor.execute("select * from table where RTRIM(nombre) =3D =
:1",=20
> nombre)
>=20
> Although I'm away from my manual to look up RTRIM to see if you need =
to=20
> pass it a 2nd parameter to tell it to trim trailing spaces.
>=20
>=20
> On Monday, August 19, 2002, at 05:27 AM, Marcos S=E1nchez Provencio =
wrote:
>=20
> > First, thank you for your help, I have found out several new things.
> >
> > The value is stored in the table as 'SAENS     ' with spaces, but =
_not_=20
> > to
> > thefull length of the column, which is 50. So, the non-parameter =
query=20
> > does find
> > results, but the parametrised query only finds results when =
providing=20
> > the
> > exactnumber of spaces (5 in this case). I can't touch the data in =
the=20
> > table. Is
> > theresome way to get the same results as a SQL*Plus window?
> >
> > PS. I use now named parameters correctly. Thanks.
> >
> >> Hello, I am having a problem trying to get some data from an Solaris
> >> Oracle 7.3.3 server. I use the 8.1.7 client in the same machine. The
> >> problem is as follows:
> >>
> >> I get results if I say
> >>
> >>    where nombre=3D'SAENS'
> >>
> >> but not if I say
> >>
> >>    where nombre=3D:p1
> >>
> >> and pass a parameter 'SAENS', fetchall returns an empty list
> >>
> >> It is funny that I get some results if I say
> >>
> >>    where nombre between :p1 and :p1 || 'Z'
> >>
> >> or (almost) what I want by saying
> >>
> >>    where nombre like :p1 || ' %'
> >>
> >> I have been puzzled by Oracle since I am using it (I had used Sybase
> >> before). Is this an Oracle issue or a Python one?
> >>
> >> Thank you very much
> >>
> >>
> >>
> >> _______________________________________________
> >> DB-SIG maillist  -  DB-SIG@python.org=20
> >> http://mail.python.org/mailman/listinfo/db-sig=20
> >
> >
> >
> >
> > _______________________________________________
> > DB-SIG maillist  -  DB-SIG@python.org=20
> > http://mail.python.org/mailman/listinfo/db-sig=20
>=20
>=20
> _______________________________________________
> DB-SIG maillist  -  DB-SIG@python.org=20
> http://mail.python.org/mailman/listinfo/db-sig=20



_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org=20
http://mail.python.org/mailman/listinfo/db-sig