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
Zapomniałeś zamykających nawiasów i próbowałeś wywołać funkcje na cursor
zamiast c
a także miał problem z wcięciem. Powinieneś także użyć callproc()
działa zgodnie z dokumentacją tutaj.
Jak powiedział katawaran, powinieneś przeczytać dokumentację dotyczącą wykonywania niestandardowego SQL i używać symboli zastępczych. Ponadto w Django 1.6+ transakcje są zatwierdzane automatycznie, więc nie ma potrzeby wykonywania c.execute("COMMIT")