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
Hai dimenticato le parentesi di chiusura e stavi cercando di chiamare le funzioni su cursor
invece di c
e ha anche avuto un problema con il rientro. Dovresti anche usare callproc()
funzione come documentato qui.
Come ha detto catavaran, dovresti leggere la documentazione sull'esecuzione di SQL personalizzato e utilizzare i segnaposto. Inoltre, in Django 1.6+, le transazioni vengono eseguite automaticamente, quindi non è necessario c.execute("COMMIT")