Perbezaan antara prosedur dan fungsi yang disimpan

Perbezaan antara prosedur dan fungsi yang disimpan

Prosedur yang disimpan vs fungsi
 

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

 Buat atau ganti Prosedur Prosedur (parameter)

 sebagai

 Mulakan

     pernyataan;

 pengecualian

     exception_handling

 akhir;

Dan inilah sintaks untuk membuat fungsi (di Oracle),

Buat atau ganti fungsi fungsi_name (parameter)

Kembali kembali_datatype

sebagai

Mulakan

pernyataan;

kembali kembali/variabel;

pengecualian;

exception_handling;

akhir;

Prosedur tersimpan

Seperti yang disebutkan di atas prosedur yang disimpan dinamakan blok pengaturcaraan. Mereka menerima parameter sebagai input pengguna dan proses mengikut logik di sebalik prosedur dan memberikan hasilnya (atau melakukan tindakan tertentu). Parameter ini boleh masuk, keluar dan jenis. Pengisytiharan berubah -ubah, tugasan berubah, penyata 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 pulangan, dan sebelum ia mengembalikan nilai, tubuhnya 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 pilih, ia terpakai pada setiap baris set hasil pertanyaan pilih. Terdapat beberapa kategori fungsi Oracle. Mereka,

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

Terdapat sub kategori fungsi baris tunggal.

  • Fungsi angka (contoh: abs, dosa, cos)
  • Fungsi Watak (Ex: Concat, InitCap)
  • Fungsi Masa Tarikh (Ex: Last_day, Next_day)
  • Fungsi Penukaran (Ex: TO_CHAR, TO_DATE)
  • Fungsi Koleksi (Ex: Cardinality, Set)
  • Fungsi agregat (mengembalikan satu baris, berdasarkan sekumpulan baris. Cth: AVG, SUM, Max)
  • Fungsi analitik
  • Fungsi rujukan objek
  • Fungsi model
  • Fungsi Definisi Pengguna

Apakah perbezaan antara fungsi dan prosedur yang disimpan?

• Semua fungsi mesti mengembalikan nilai menggunakan pernyataan pulangan. Prosedur yang disimpan tidak mengembalikan nilai menggunakan pernyataan pulangan. Penyataan kembali di dalam prosedur akan mengembalikan kawalannya ke program panggilan. Parameter keluar boleh digunakan untuk mengembalikan nilai dari prosedur yang disimpan.

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

• Jenis data pulangan mesti dimasukkan untuk membuat fungsi, tetapi dalam prosedur disimpan DDL, tidak.