使用psycopg2在python中执行查询时出现“ProgrammingError:语法错误或接近”

时间:2013-05-10 07:51:13

标签: python postgresql python-2.7 psycopg2

我正在运行Python v 2.7和psycopg2 v 2.5 我有一个postgresql数据库函数,它返回一个sql查询作为文本字段。

我使用以下代码调用该函数并从文本字段中提取查询。

cur2.execute("SELECT * FROM historian.generate_get_archive_data_sql(%s, '*',public.get_dcs_datetime_from_timestamp(%s),public.get_dcs_datetime_from_timestamp(%s))",(row,old_time,current_time))
while True: #Indefinite Loop
    row2 = cur2.fetchone()
    query2 = str(row2)
    cur3.execute(query2)

我在运行脚本时似乎遇到以下错误,

  

ProgrammingError:“'SELECT * FROM或其附近的语法错误   historian._73b4f984f30b4c68a871fac1c53a1b8f_45907294814208000 WHERE   archive_datetime BETWEEN 45907381384722560和45907381384732560订购   BY archive_datetime;'“第1行:('SELECT * FROM   历史学家。 73b4f984f30b4c68a871fac1c53a1b8f ...

当我在postgresql服务器上运行查询时,它执行正常。有人能帮助我理解我做错了什么吗? 。感谢。

1 个答案:

答案 0 :(得分:1)

如果您可以在问题中描述您的表格架构,那么它会更加清晰。

可能的错误可能是您用于字符串格式化的以下任一参数都是None。

(row,old_time,current_time)

请检查您的代码以解决相同的问题。