I have the following sql, where i want to return the selected data
insert into test(id,name) select * from tmp_tbl on conflict(id) do update set name = EXCLUDED.name;
with selected_data as (select * from tmp_tbl) select * from selected_data;
drop table if exists tmp_tbl;
THis is the python code:
with psycopg.connect(self.connect_str, autocommit=True) as conn:
with conn.cursor() as cur:
cur.execute(sql_full)
rows = cur.fetchall()
colnames = [desc[0] for desc in cur.description]
df_result = pd.DataFrame(rows, columns=colnames)
return df_result
This produces error:
File "/usr/local/lib/python3.12/site-packages/psycopg/cursor.py", line 223, in fetchall
self._check_result_for_fetch()
File "/usr/local/lib/python3.12/site-packages/psycopg/_cursor_base.py", line 588, in _check_result_for_fetch
raise e.ProgrammingError("the last operation didn't produce a result")
psycopg.ProgrammingError: the last operation didn't produce a result
I can execute that sql directly in sql client(dbweaver) and it works. but the python/psycopg code does not. any help appreciated
You need to sign in to view this answers