PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Panggil prosedur tersimpan Postgres SQL Dari 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

Anda lupa parens penutup dan mencoba memanggil fungsi pada cursor bukannya c dan juga memiliki masalah dengan lekukan. Anda juga harus menggunakan callproc() berfungsi seperti yang didokumentasikan di sini.

Seperti yang dikatakan catavaran, Anda harus membaca dokumentasi tentang menjalankan SQL kustom dan menggunakan placeholder. Juga, di Django 1.6+, transaksi dilakukan secara otomatis sehingga tidak perlu 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. Mengapa Postgres melakukan pemindaian berurutan di mana indeks akan mengembalikan <1% dari data?

  2. Optimalkan penghapusan Postgres dari catatan yatim

  3. Ubah fungsi rekursif menjadi tampilan

  4. Penanganan zona waktu yang aneh dalam database Postgres

  5. ActiveRecord mencoba menyambung ke database yang salah menggunakan rbenv