cx_Oracle question

Diez B. Roggisch deets at nospam.web.de
Fri Sep 8 14:36:07 EDT 2006


Richard Schulman schrieb:
> I'm having trouble getting started using Python's cx_Oracle binding to
> Oracle XE. In forthcoming programs, I need to set variables within sql
> statements based on values read in from flat files. But I don't seem
> to be able to get even the following stripped-down test program to
> work:
> 
> import cx_Oracle
> connection = cx_Oracle.connect("username", "password")
> cursor = connection.cursor()
> 
> arg_1 = 2 #later, arg_1, arg_2, etc. will be read in files
> 
> cursor.execute("""select mean_eng_txt from mean
>                   where mean_id=:arg_1""",arg_1)
> for row in cursor.fetchone():
>     print row
> cursor.close()
> connection.close()
> 
> The program above produces the following error message:
> 
> C:\pythonapps>python oracle_test.py
> Traceback (most recent call last):
>    File "oracle_test.py", line 7, in ?
>       cursor.execute('select mean_eng_txt from mean where
>       mean_id=:arg_1',arg_1)
> TypeError: expecting a dictionary, sequence or keyword args
> 
> What do I need to do to get this sort of program working?

Do what it tells you to do: use a dictionary as parameters or 
keyword-args. Not sure what they mean by a sequence though.


So it should work like this:


cursor.execute("""select mean_eng_txt from mean
                   where mean_id=:arg_1""",{arg_1=arg_1})

Diez



More information about the Python-list mailing list