Perbezaan Antara Prosedur dan Fungsi Tersimpan

Prosedur Tersimpan vs Fungsi
 

Prosedur dan fungsi yang disimpan adalah dua jenis blok pengaturcaraan. Kedua-duanya mesti mempunyai nama panggilan. Nama panggilan tersebut digunakan untuk memanggil mereka di dalam blok pengaturcaraan lain seperti fungsi dan pakej prosedur atau pertanyaan SQL. Kedua-dua jenis objek menerima parameter dan melaksanakan tugas di belakang objek tersebut. Inilah sintaks (dalam ORACLE) untuk membuat prosedur tersimpan,

 membuat atau menggantikan prosedur prosedur (parameter)

 sebagai

 mulakan

     penyataan;

 pengecualian

     pengecualian

 akhir;

Dan inilah sintaks untuk mencipta fungsi (dalam ORACLE),

membuat atau menggantikan function_name (parameter)

kembali return_datatype

sebagai

mulakan

penyataan;

pulangan return_value / pemboleh ubah;

pengecualian;

exception_handling;

akhir;

Prosedur Tersimpan

Seperti yang disebutkan di atas prosedur yang disimpan disebut blok pengaturcaraan. Mereka menerima parameter sebagai input pengguna dan memproses mengikut logik di belakang prosedur dan memberi hasil (atau melakukan tindakan tertentu). Parameter ini boleh menjadi jenis IN, OUT dan INOUT. Pengisytiharan berubah-ubah, tugasan pembolehubah, kenyataan kawalan, gelung, pertanyaan SQL dan fungsi / prosedur / panggilan pakej lain boleh berada di dalam badan prosedur.

Fungsi

Fungsi juga dinamakan blok pengaturcaraan, yang mesti mengembalikan nilai menggunakan pernyataan RETURN, dan sebelum ia mengembalikan nilai, badannya melakukan beberapa tindakan juga (menurut logik yang diberikan). Fungsi juga menerima parameter untuk dijalankan. Fungsi boleh dipanggil di dalam pertanyaan. Apabila fungsi dipanggil di dalam pertanyaan SELECT, ia terpakai untuk setiap baris set hasil query SELECT. Terdapat beberapa kategori fungsi ORACLE. Mereka adalah,

  • Fungsi baris tunggal (mengembalikan hasil tunggal untuk setiap baris setiap pertanyaan)

Terdapat sub kategori fungsi baris tunggal.

  • Fungsi angka (Contoh: ABS, SIN, COS)
  • Fungsi watak (Contoh: CONCAT, INITCAP)
  • Fungsi masa tarikh (Contoh: LAST_DAY, NEXT_DAY)
  • Fungsi penukaran (Contoh: TO_CHAR, TO_DATE)
  • Fungsi pengumpulan (Contoh: KARDINALITI, SET)
  • Fungsi agregat (Mengembalikan satu baris, berdasarkan kumpulan baris Ex: AVG, SUM, MAX)
  • Fungsi analitik
  • Fungsi rujukan objek
  • Fungsi model
  • Fungsi didefinisikan pengguna

Apakah perbezaan antara fungsi dan Prosedur Tersimpan?

• Semua fungsi mesti mengembalikan nilai menggunakan pernyataan RETURN. Prosedur disimpan tidak mengembalikan nilai menggunakan pernyataan RETURN. Kenyataan RETURN di dalam prosedur akan mengembalikan kawalannya kepada program panggilan. OUT parameter boleh digunakan untuk mengembalikan nilai dari prosedur tersimpan.

• Fungsi boleh dipanggil di dalam pertanyaan, tetapi prosedur tersimpan tidak boleh digunakan di dalam pertanyaan.

• RETURN jenis data mesti dimasukkan untuk membuat fungsi, tetapi dalam prosedur yang disimpan DDL, tidak.