2013-05-10 144 views
0

我正在運行Python v 2.7和psycopg2 v 2.5 我有一個postgresql數據庫函數,它返回一個sql查詢作爲文本字段。「ProgrammingError:語法錯誤在或接近」當在python中使用psycopg2執行查詢

我正在使用以下代碼調用該函數並從文本字段中提取查詢。

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: syntax error at or near "'SELECT * FROM historian._73b4f984f30b4c68a871fac1c53a1b8f_45907294814208000 WHERE archive_datetime BETWEEN 45907381384722560 AND 45907381384732560 ORDER BY archive_datetime;'" LINE 1: ('SELECT * FROM historian.73b4f984f30b4c68a871fac1c53a1b8f...

當我在PostgreSQL服務器上運行的查詢,那麼執行罰款。有人能幫我理解我做錯了什麼嗎? 。謝謝。

回答

1

如果你可以在問題中描述你的表模式,它會增加更多的清晰度。

可能錯誤可能是您用於字符串格式的以下參數之一是無。

(row,old_time,current_time) 

請檢查您的代碼是否解決相同的問題。

+0

找出問題所在,query2 = str(row2),將轉換後的字符串括在單引號中。在將它傳遞給execute()以使sql查詢正確執行之前,必須從字符串中去掉單引號。 – trance 2013-05-10 08:49:45

相關問題