sql >> Database >  >> RDS >> PostgreSQL

Call Postgres SQL opgeslagen procedure Van 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

U bent de sluithaakjes vergeten en probeerde de functies op de cursor aan te roepen in plaats van c en had ook een probleem met inspringen. Je moet ook de callproc() . gebruiken functioneren zoals gedocumenteerd hier.

Zoals catavaran zei, moet u de documentatie over het uitvoeren van aangepaste SQL lezen en tijdelijke aanduidingen gebruiken. In Django 1.6+ worden de transacties ook automatisch vastgelegd, dus c.execute("COMMIT") is niet nodig.



  1. Gelijktijdige gebruikerssessies beperken voor een specifieke login in SQL Server

  2. Kunnen we meerdere WITH AS hebben in één sql - Oracle SQL?

  3. Oracle Connection String voor RAC-omgeving?

  4. java.sql.SQLException:Toegang geweigerd voor gebruiker