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
Sie haben die schließenden Klammern vergessen und versucht, die Funktionen auf cursor
aufzurufen statt c
und hatte auch ein Problem mit der Einrückung. Sie sollten auch callproc()
verwenden Funktion wie hier
dokumentiert
Wie Catavaran sagte, sollten Sie die Dokumentation zum Ausführen von benutzerdefiniertem SQL lesen und Platzhalter verwenden. Außerdem werden die Transaktionen in Django 1.6+ automatisch festgeschrieben, sodass c.execute("COMMIT")
nicht erforderlich ist