Perbedaan antara prosedur dan fungsi tersimpan

Perbedaan antara prosedur dan fungsi tersimpan

Prosedur Tersimpan vs Fungsi
 

Prosedur dan fungsi tersimpan adalah dua jenis blok pemrograman. Keduanya pasti memiliki nama panggilan. Nama -nama panggilan tersebut digunakan untuk memanggilnya di dalam blok pemrograman lain seperti fungsi dan paket prosedur atau kueri SQL. Kedua jenis objek ini menerima parameter dan melakukan tugas di balik objek tersebut. Ini adalah sintaks (di Oracle) untuk membuat prosedur tersimpan,

 Buat atau ganti Prosedur Prosedurename (parameter)

 sebagai

 mulai

     pernyataan;

 pengecualian

     Exception_handling

 akhir;

Dan di sini adalah sintaks untuk membuat fungsi (di Oracle),

Buat atau ganti fungsi fungsi_name (parameter)

return return_datatype

sebagai

mulai

pernyataan;

return return_value/variabel;

pengecualian;

pengecualian_handling;

akhir;

Prosedur tersimpan

Seperti disebutkan di atas, prosedur tersimpan bernama blok pemrograman. Mereka menerima parameter sebagai input dan proses pengguna sesuai dengan logika di balik prosedur dan memberikan hasilnya (atau melakukan tindakan tertentu). Parameter ini dapat masuk, keluar dan tidak masuk. Deklarasi variabel, penugasan variabel, pernyataan kontrol, loop, kueri SQL dan fungsi/prosedur/panggilan paket lainnya dapat berada di dalam badan prosedur.

Fungsi

Fungsi juga dinamai blok pemrograman, yang harus mengembalikan nilai menggunakan pernyataan pengembalian, dan sebelum mengembalikan nilai, tubuhnya melakukan beberapa tindakan juga (menurut logika yang diberikan). Fungsi juga menerima parameter untuk dijalankan. Fungsi dapat dipanggil di dalam kueri. Ketika suatu fungsi dipanggil di dalam kueri pilih, itu berlaku untuk setiap baris set hasil dari kueri pilih. Ada beberapa kategori fungsi Oracle. Mereka,

  • Fungsi baris tunggal (mengembalikan satu hasil untuk setiap baris kueri)

Ada sub -kategori dari satu fungsi baris.

  • Fungsi numerik (mis: abs, dosa, cos)
  • Fungsi Karakter (Kel: Concat, InitCap)
  • Fungsi Waktu Tanggal (mis: last_day, next_day)
  • Fungsi konversi (mis: to_char, to_date)
  • Fungsi Koleksi (Kel: Cardinality, Set)
  • Fungsi agregat (mengembalikan satu baris, berdasarkan kelompok baris. Contoh: Rata -rata, jumlah, maks)
  • Fungsi analitik
  • Fungsi Referensi Objek
  • Fungsi Model
  • Fungsi yang ditentukan pengguna

Apa perbedaan antara fungsi dan prosedur tersimpan?

• Semua fungsi harus mengembalikan nilai menggunakan pernyataan pengembalian. Prosedur tersimpan tidak mengembalikan nilai menggunakan pernyataan pengembalian. Pernyataan pengembalian di dalam prosedur akan mengembalikan kontrolnya ke program panggilan. Parameter keluar dapat digunakan untuk mengembalikan nilai dari prosedur tersimpan.

• Fungsi dapat dipanggil di dalam kueri, tetapi prosedur tersimpan tidak dapat digunakan di dalam kueri.

• Tipe data pengembalian harus dimasukkan untuk membuat fungsi, tetapi dalam prosedur tersimpan ddl, tidak.