2011-11-13 13 views
8

Próbuję wywołać funkcję z psycopg2 takie jak:psycopg2 nie wykonuje funkcji PostgreSQL

conn = psycopg2.connect(host="name.host.ex", user="username", password="secret") 
cur = conn.cursor() 
cur.callproc("f_do_action", ["aaa", "bbb"]) 
cur.close() 
conn.close() 

Podczas wywoływania funkcji od psql wszystko działa poprawnie, ale przy użyciu psycopg2 nic się nie dzieje. Nie mam wyjątków. Po prostu nie wywołuje funkcji w rzeczywistej bazie danych.

Również inne zapytania od psycopg2 pracy (SELECT, INSERT).

Odpowiedz

14

Spróbuj popełnienie przed zamknięciem połączenia:

cur.close() 
conn.commit() 
conn.close() 

Od psycopg2 documentation:

Zauważ, że zamknięcie połączenia bez wykonania zmian pierwszy spowoduje żadnych czeka zmiana zostać odrzucone jakby ROLLBACK wykonano (chyba że wybrano inny poziom izolacji: patrz set_isolation_level()).

Powiązane problemy