PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Извикайте съхранена процедура на Postgres SQL от 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

Забравихте затварящите скоби и се опитвахте да извикате функциите на cursor вместо c и също имаше проблем с отстъпа. Трябва също да използвате callproc() функционира, както е документирано тук.

Както каза catavaran, трябва да прочетете документацията за изпълнение на персонализиран SQL и да използвате контейнери. Освен това в Django 1.6+ транзакциите се извършват автоматично, така че няма нужда от 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. PostgreSQL nextval и currval в една и съща заявка

  2. Не мога да инсталирам pg gem на Mountain Lion

  3. Защо PostgreSQL третира моята заявка по различен начин във функция?

  4. Принудително да се инсталира Postgres с кодиране UTF8, а не LATIN1?

  5. Актуализирайте колона на таблица с колона на друга таблица в PostgreSQL