sql >> Databáze >  >> RDS >> PostgreSQL

Zavolejte Postgres SQL uloženou proceduru z Django

c = connection.cursor()
try:
    c.execute("BEGIN")
    c.callproc("fn_save_message3", (Message_Subject, Message_Content, Message_Type, Message_Category, Created_By, Updated_By))
    results = c.fetchall()
    c.execute("COMMIT")
finally:
    c.close()
print results

Zapomněli jste uzavírací závorky a pokoušeli jste se volat funkce na cursor místo c a také měl problém s odsazením. Měli byste také použít callproc() fungovat, jak je zdokumentováno zde.

Jak řekl catavaran, měli byste si přečíst dokumentaci o provádění vlastního SQL a používat zástupné symboly. Také v Django 1.6+ jsou transakce potvrzeny automaticky, takže není potřeba c.execute("COMMIT")



  1. Začínáme s kanály Django

  2. Entity Framework 6 – Časové dotazy

  3. Návrh databáze

  4. Použití výsledku SQL ve smyčce foreach