[DB-SIG] Parameters in DCOracle2

Matthew T. Kromer matt@zope.com
Fri, 16 Aug 2002 10:12:33 -0400

Marcos S=E1nchez Provencio wrote:

>Hello, I am having a problem trying to get some data from an Solaris Ora=
>7.3.3 server. I use the 8.1.7 client in the same machine. The problem is=
>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 bef=
>Is this an Oracle issue or a Python one?
>Thank you very much
> =20

Hello Marcos,

If you use named parameters (ala :p1 etc) you need to pass them in as=20
named parameters to the execute call:

      cursor.execute('select * from table where nombre=3D:p1', p1=3D'SAEN=

Otherwise, you can use positional arguments

     cursor.execute('select * from table where nombre=3D:1', 'SAENS')

Matt Kromer
Zope Corporation  http://www.zope.com/=20