Perbedaan Antara Prosedur dan Fungsi yang Disimpan

Prosedur Tersimpan vs Fungsi
 

Prosedur dan fungsi tersimpan adalah dua jenis blok pemrograman. Keduanya harus memiliki nama panggilan. Nama-nama panggilan tersebut digunakan untuk memanggil mereka di dalam blok pemrograman lain seperti fungsi prosedur dan paket atau query SQL. Kedua tipe objek ini menerima parameter dan melakukan tugas di belakang objek-objek tersebut. Ini adalah sintaks (dalam ORACLE) untuk membuat prosedur tersimpan,

 membuat atau mengganti prosedur prosedural nama (parameter)

 sebagai

 mulai

     pernyataan;

 pengecualian

     penanganan exception_

 akhir;

Dan ini adalah sintaks untuk membuat suatu fungsi (dalam ORACLE),

membuat atau mengganti function function_name (parameter)

return return_datatype

sebagai

mulai

pernyataan;

return return_value / variabel;

pengecualian;

penanganan exception_;

akhir;

Prosedur Tersimpan

Seperti disebutkan di atas, prosedur tersimpan dinamai 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 bisa tipe IN, OUT dan INOUT. Deklarasi variabel, penugasan variabel, pernyataan kontrol, loop, kueri SQL, dan panggilan fungsi / prosedur / paket lainnya dapat berada di dalam tubuh prosedur.

Fungsi

Fungsinya juga dinamai blok pemrograman, yang harus mengembalikan nilai menggunakan pernyataan RETURN, dan sebelum mengembalikan nilai, badannya melakukan beberapa tindakan juga (sesuai dengan logika yang diberikan). Fungsi juga menerima parameter untuk dijalankan. Fungsi dapat dipanggil di dalam kueri. Ketika fungsi dipanggil di dalam kueri SELECT, itu berlaku untuk setiap baris dari set hasil kueri SELECT. Ada beberapa kategori fungsi ORACLE. Mereka,

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

Ada sub kategori fungsi baris tunggal.

  • Fungsi numerik (Mis: ABS, SIN, COS)
  • Fungsi karakter (Mis: CONCAT, INITCAP)
  • Fungsi waktu tanggal (Mis .: LAST_DAY, NEXT_DAY)
  • Fungsi konversi (Mis: TO_CHAR, TO_DATE)
  • Fungsi pengumpulan (Contoh: CARDINALITY, SET)
  • Fungsi agregat (Mengembalikan satu baris, berdasarkan sekelompok baris. Mis: AVG, SUM, MAX)
  • Fungsi analitik
  • Fungsi referensi objek
  • Fungsi model
  • Fungsi yang ditentukan pengguna

Apa perbedaan antara fungsi dan Prosedur yang Disimpan?

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

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

• Jenis data RETURN harus dimasukkan untuk membuat fungsi, tetapi dalam prosedur tersimpan, DDL tidak.