我正在運行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服務器上運行的查詢,那麼執行罰款。有人能幫我理解我做錯了什麼嗎? 。謝謝。
找出問題所在,query2 = str(row2),將轉換後的字符串括在單引號中。在將它傳遞給execute()以使sql查詢正確執行之前,必須從字符串中去掉單引號。 – trance 2013-05-10 08:49:45