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")