sql >> Databasteknik >  >> RDS >> PostgreSQL

Ring Postgres SQL lagrad procedur från 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

Du glömde de avslutande parenteserna och försökte anropa funktionerna på cursor istället för c och hade även problem med indrag. Du bör också använda callproc() fungerar som dokumenterat här.

Som catavaran sa, du bör läsa dokumentationen om att köra anpassad SQL och använda platshållare. Dessutom, i Django 1.6+ genomförs transaktionerna automatiskt så det finns inget behov av c.execute("COMMIT")



  1. postgresql dödläge

  2. Android SQLite LIKE escape jokertecken

  3. mysql-fråga för att välja alla rader i aktuell månad?

  4. Utöka en resultatuppsättning GROUP BY och HAVING