PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wywołaj procedurę składowaną Postgres SQL z 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

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")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować PostgreSQL 12 na Ubuntu 20.04/18.04/16.04

  2. Najszybsze sprawdzenie, czy wiersz istnieje w PostgreSQL

  3. typ wydajności varchar(1) lub smallint do przechowywania statusu Postgres

  4. Tablica wierszy PL/pgSQL

  5. Przywróć bazę danych PostgreSQL z kopii zapasowej bez problemu z ograniczeniem klucza obcego