psycopg2 / psycopg2.ProgrammingError: syntax error at or near "E'mytable'"
mrdrew
afitting at gmail.com
Mon Apr 5 12:20:28 EDT 2010
Thanks for the replies. The param style is pyformat. I've tried
using the '%s' style with a set and get exactly the same error.
c.execute('SELECT * FROM %s LIMIT 1',('mytable',))
psycopg2.ProgrammingError: syntax error at or near "E'mytable'"
LINE 1: SELECT * FROM E'mytable' LIMIT 1
MRAB and Steve Holden may be correct, but are at odds with the
psycopg2 documentation (http://initd.org/psycopg/docs/
usage.html#passing-parameters-to-sql-queries) which shows named
arguments being used with a dictionary.
It appears that the real problem is, as Steve mentioned, that the
device driver may not allow table name substitution. The following
query seems to work...
c.execute('SELECT * FROM mytable WHERE id = %(id)s',{'id':'10'})
(Oddly enough, this one doesn't)
c.execute('SELECT * FROM mytable WHERE id = %(id)d',{'id':int(10)})
TypeError: int argument required
More information about the Python-list
mailing list