Prosedur Tersimpan lwn Fungsi
Prosedur dan fungsi tersimpan ialah dua jenis blok pengaturcaraan. Kedua-duanya mesti mempunyai nama panggilan. Nama panggilan tersebut digunakan untuk memanggilnya 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 ialah sintaks (dalam ORACLE) untuk mencipta prosedur tersimpan, buat atau ganti nama prosedur prosedur (parameter)
as
mulakan
penyataan;
exception
pengendalian_pengecualian
end;
Dan berikut ialah sintaks untuk mencipta fungsi (dalam ORACLE), buat atau ganti nama_fungsi (parameter)
return return_datatype
as
mulakan
penyataan;
pulangan_nilai/pembolehubah;
exception;
pengendalian_pengecualian;
end;
Prosedur Tersimpan
Seperti yang dinyatakan di atas, prosedur tersimpan dinamakan blok pengaturcaraan. Mereka menerima parameter sebagai input dan proses pengguna mengikut logik di sebalik prosedur dan memberikan hasil (atau melakukan tindakan tertentu). Parameter ini boleh jenis IN, OUT dan INOUT. Pengisytiharan pembolehubah, penugasan pembolehubah, penyataan 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 juga melakukan beberapa tindakan (mengikut logik yang diberikan). Fungsi juga menerima parameter untuk dijalankan. Fungsi boleh dipanggil di dalam pertanyaan. Apabila fungsi dipanggil dalam pertanyaan SELECT, ia digunakan pada setiap baris set hasil pertanyaan SELECT. Terdapat beberapa kategori fungsi ORACLE. Mereka ialah,
Fungsi baris tunggal (mengembalikan hasil tunggal untuk setiap baris pertanyaan)
Terdapat subkategori bagi satu baris fungsi.
- Fungsi angka (Cth: ABS, SIN, COS)
- Fungsi aksara (Cth: CONCAT, INITCAP)
- Fungsi masa tarikh (Cth: LAST_DAY, NEXT_DAY)
- Fungsi penukaran (Cth: TO_CHAR, TO_DATE)
- Fungsi pengumpulan (Cth: CARDINALITY, SET)
- Fungsi agregat (Mengembalikan satu baris, berdasarkan sekumpulan baris. Cth: AVG, SUM, MAX)
- Fungsi analitik
- Fungsi rujukan objek
- Fungsi model
- Fungsi yang ditentukan pengguna
Apakah perbezaan antara fungsi dan Prosedur Tersimpan?
• Semua fungsi mesti mengembalikan nilai menggunakan pernyataan RETURN. Prosedur tersimpan tidak mengembalikan nilai menggunakan pernyataan RETURN. Kenyataan RETURN di dalam prosedur akan mengembalikan kawalannya kepada program panggilan. Parameter OUT boleh digunakan untuk mengembalikan nilai daripada prosedur yang disimpan.
• Fungsi boleh dipanggil di dalam pertanyaan, tetapi prosedur tersimpan tidak boleh digunakan di dalam pertanyaan.
• Jenis data RETURN mesti disertakan untuk mencipta fungsi, tetapi dalam prosedur tersimpan DDL, ia tidak.