sql >> Database teknologi >  >> RDS >> PostgreSQL

Ring til Postgres SQL lagret procedure fra 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

Du glemte de afsluttende parentser og prøvede at kalde funktionerne på cursor i stedet for c og havde også et problem med indrykning. Du bør også bruge callproc() fungerer som dokumenteret her.

Som catavaran sagde, bør du læse dokumentationen om udførelse af tilpasset SQL og bruge pladsholdere. Også i Django 1.6+ bliver transaktionerne forpligtet automatisk, så der er ikke behov for c.execute("COMMIT")



  1. Find noder i SQL Tree Structure

  2. mySQL:utf8 tegnsæt på indekstabel og duplikatnøglefejl

  3. Postgres vindue funktion kolonne med skinner

  4. opdatering af eksisterende poster med et unikt heltal