Membuat prosedur tersimpan di Azure Database for PostgreSQL

Selesai

Membuat prosedur tersimpan untuk tugas tertentu memiliki banyak keuntungan, salah satunya adalah memperluas fungsionalitas database Azure for PostgreSQL Anda. Gunakan prosedur tersimpan saat Anda akan melakukan tindakan berikut:

  • Kembangkan dan uji kode kompleks di satu tempat, lalu panggil jika diperlukan.
  • Menjalankan kode secara efisien. Prosedur tersimpan yang mengembalikan hasil yang sama lebih efisien karena telah dikommpilasikan dan disimpan di server Azure Database PostgreSQL.
  • Sehingga, kode Anda akan lebih mudah dibaca.
  • Menyertakan penanganan kesalahan dalam transaksi.
  • Menyembunyikan kompleksitas dari pengguna.

Meskipun Azure Database for PostgreSQL mendukung beberapa bahasa pemrograman, SQL adalah bahasa asli PostgreSQL dan berfungsi paling baik dengan pengoptimal.

Prosedur tersimpan dibuat dengan kata kunci CREATE PROCEDURE. Atau, gunakan CREATE OR REPLACE PROCEDURE untuk membuat prosedur baru, atau mengganti prosedur dengan nama yang sama.

Sertakan nama skema untuk membuat prosedur dalam skema tertentu. Jika tidak, dibuat dalam skema saat ini. Nama prosedur harus unik dalam skema, termasuk jenis argumen input-nya. Namun, Anda dapat membebani nama prosedur dengan memberikan nama yang sama ke prosedur atau fungsi dengan jenis argumen yang berbeda.

Pengguna yang membuat prosedur adalah pemilik prosedur. Anda juga harus menentukan bahasa pemrogramnya.

Prosedur mengambil parameter berikut:

  • name - secara opsional menyertakan nama skema.
  • argmode - mode argumen. Dapat berupa IN, INOUT, atau VARIADIC. Defaultnya adalah IN. OUT tidak didukung, jadi sebagai gantinya, gunakan INOUT. VARDIADIC adalah jumlah argumen input yang tidak terdefinisi dengan jenis yang sama, dan harus menjadi argumen input yang terakhir.
  • argname - nama argumen.
  • argtype - tipe data argumen.
  • default_expr - ekspresi default (dengan jenis yang sama) yang akan digunakan jika parameter tidak ditentukan. Parameter input yang mengikuti parameter dengan nilai default juga harus memiliki nilai default.
  • lang_name - bahasa pemrogram yang digunakan untuk menulis prosedur. Dapat berupa sql, c, internal, atau nama bahasa prosedural yang ditentukan pengguna, misalnya, plpgsql.

Dalam contoh berikut, ada suatu prosedur tersimpan yang dibuat dengan nama myprocedure, yang mengambil parameter input a dan b. IN adalah default untuk parameter, jadi kita tidak perlu secara eksplisit mengidentifikasinya sebagai parameter input. Ketika prosedur tersimpan dipanggil, nilai yang ditetapkan ke parameter ini dimasukkan ke dalam mytable.

CREATE PROCEDURE myprocedure (a integer, b integer)
    LANGUAGE SQL
    AS $$
        INSERT INTO mytable VALUES (a, b);
    $$;

Simbol $$ digunakan untuk memulai dan mengakhiri string. Anda juga dapat menggunakan tanda petik tunggal, tetapi tindakan ini dapat menyebabkan masalah dengan bahasa pemrogram yang lain, sehingga $$ lebih disarankan untuk digunakan.