PL/SQL-এ Function এবং Procedure দুটোই একটি নির্দিষ্ট কার্যকারিতা সম্পাদন করতে ব্যবহৃত হয়, তবে তাদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে। নিচে Function এবং Procedure এর মধ্যে পার্থক্যগুলোর বিস্তারিত ব্যাখ্যা দেওয়া হলো।
১. Function:
একটি Function হল একটি নামকরা ব্লক যা এক বা একাধিক ইনপুট প্যারামিটার গ্রহণ করে এবং একটি মান (value) রিটার্ন করে। এটি সাধারণত গাণিতিক হিসাব, মান যাচাই, অথবা কিছু লজিক্যাল কাজ করার জন্য ব্যবহৃত হয়।
বিশেষত্ব:
- রিটার্ন ভ্যালু: একটি Function সর্বদা একটি মান (value) রিটার্ন করে। এটি একটি একক মান রিটার্ন করতে পারে (যেমন
NUMBER,VARCHAR2,DATEইত্যাদি)। - প্যারামিটার: Function ইনপুট প্যারামিটার গ্রহণ করতে পারে এবং এর মাধ্যমে ক্যালকুলেশন বা প্রসেসিং করে রিটার্ন মান প্রদান করতে পারে।
- ব্যবহার: Function সাধারণত
SELECTস্টেটমেন্টে অথবা এক্সপ্রেশনে ব্যবহৃত হয়। যেমন:SELECT function_name(parameters) FROM dual;
উদাহরণ:
CREATE OR REPLACE FUNCTION calculate_salary (p_emp_id NUMBER)
RETURN NUMBER IS
v_salary NUMBER;
BEGIN
SELECT salary INTO v_salary FROM employees WHERE employee_id = p_emp_id;
RETURN v_salary;
END;
এখানে:
calculate_salaryএকটি Function যাemployee_idএর ভিত্তিতে একজন কর্মচারীর বেতন রিটার্ন করে।
২. Procedure:
একটি Procedure হল একটি নামকরা ব্লক যা এক বা একাধিক ইনপুট প্যারামিটার গ্রহণ করতে পারে, তবে এটি কোনো মান রিটার্ন করে না। এটি সাধারণত কোনো কাজ সম্পাদন করতে ব্যবহৃত হয়, যেমন ডেটাবেসে ইনসার্ট, আপডেট, বা ডিলিট অপারেশন।
বিশেষত্ব:
- রিটার্ন ভ্যালু: একটি Procedure কখনোই কোনো মান রিটার্ন করে না। এটি কাজ করে কিন্তু কোনো ভ্যালু রিটার্ন না করে (তবে
OUTপ্যারামিটার ব্যবহার করে আউটপুট পাঠানো সম্ভব)। - প্যারামিটার: Procedure প্যারামিটার গ্রহণ করতে পারে এবং এই প্যারামিটারগুলির মাধ্যমে কার্যক্রম চালানো হয়।
- ব্যবহার: Procedure সাধারণত SQL স্টেটমেন্টের বাইরে কল করা হয়, যেমন
EXECUTE procedure_name(parameters);
উদাহরণ:
CREATE OR REPLACE PROCEDURE update_salary (p_emp_id NUMBER, p_new_salary NUMBER) IS
BEGIN
UPDATE employees
SET salary = p_new_salary
WHERE employee_id = p_emp_id;
COMMIT;
END;
এখানে:
update_salaryএকটি Procedure যাemployee_idএর ভিত্তিতে একজন কর্মচারীর বেতন আপডেট করে। এটি কোন মান রিটার্ন করে না।
Function এবং Procedure এর পার্থক্য:
| বিষয় | Function | Procedure |
|---|---|---|
| রিটার্ন ভ্যালু | অবশ্যই একটি মান রিটার্ন করে। | কোন মান রিটার্ন করে না। (তবে OUT প্যারামিটার ব্যবহার করে আউটপুট পাঠানো যায়) |
| ব্যবহার | সাধারণত SQL কিউরিতে বা এক্সপ্রেশন হিসেবে ব্যবহার হয়। | সাধারণত কাজ বা কার্যকলাপ সম্পাদন করতে ব্যবহার হয়। |
| প্যারামিটার | ইনপুট প্যারামিটার গ্রহণ করে এবং একটি মান রিটার্ন করে। | ইনপুট, আউটপুট, অথবা ইন/আউট প্যারামিটার গ্রহণ করতে পারে। |
| বিভাগ | সাধারণত গণনা, মান বের করা ইত্যাদির জন্য ব্যবহৃত হয়। | সাধারণত ডেটাবেস অপারেশন (INSERT, UPDATE, DELETE) সম্পাদনের জন্য ব্যবহৃত হয়। |
| SQL এ ব্যবহৃত | SELECT স্টেটমেন্টের অংশ হিসেবে ব্যবহার করা যায়। | সাধারণত EXECUTE স্টেটমেন্ট বা কোড ব্লকের বাইরে কল করা হয়। |
| অফসেটের সুবিধা | একটি একক মান রিটার্ন করে, যা পরবর্তী কাজের জন্য ব্যবহার করা যায়। | অনেক ধরনের কার্যকলাপ একসাথে সম্পাদন করতে পারে, যেমন একাধিক ডেটাবেস অপারেশন। |
সংক্ষেপে:
- Function হল একটি গাণিতিক বা লজিক্যাল ব্লক যা একক মান রিটার্ন করে এবং সাধারণত এক্সপ্রেশন বা
SELECTস্টেটমেন্টের মধ্যে ব্যবহৃত হয়। - Procedure একটি কার্যকরী ব্লক যা একাধিক প্যারামিটার গ্রহণ করতে পারে এবং বিভিন্ন ধরনের কার্যক্রম সম্পাদন করে, তবে কোনো মান রিটার্ন করে না।
আপনার প্রয়োজনে উপযুক্ত ব্যবহার নির্বাচন করে আপনি Function বা Procedure ব্যবহার করতে পারেন।
Read more