Procedure এবং Function এর বাস্তব উদাহরণ

বাস্তব উদাহরণ এবং ডেমো - পিএল/এসকিউএল (PL/SQL) - Database Tutorials

361

PL/SQL তে Procedure এবং Function দুটি গুরুত্বপূর্ণ অংশ, যেগুলি কোড পুনঃব্যবহারযোগ্য করতে এবং বিভিন্ন ডাটাবেস অপারেশনকে সহজ এবং দ্রুত করতে ব্যবহৃত হয়। নিচে, আমরা Procedure এবং Function এর বাস্তব উদাহরণ দেখবো।


১. Procedure উদাহরণ

PL/SQL Procedure হল এমন একটি স্টোরড প্রোগ্রাম যা কোনও নির্দিষ্ট কাজ সম্পন্ন করে এবং কোন ভ্যালু রিটার্ন করে না। প্রোসিডিউর সাধারণত ডেটাবেসে পরিবর্তন আনার জন্য ব্যবহৃত হয়, যেমন ইনসার্ট, আপডেট বা ডিলিট।

উদাহরণ: একটি প্রোসিডিউর যা একজন কর্মচারীর বেতন আপডেট করবে

ধরা যাক, আমাদের একটি employees নামক টেবিল রয়েছে এবং আমরা একটি প্রোসিডিউর তৈরি করতে চাই যা নির্দিষ্ট কর্মচারীর employee_id এর ভিত্তিতে তাদের বেতন আপডেট করবে।

CREATE OR REPLACE PROCEDURE update_employee_salary(
    p_employee_id IN employees.employee_id%TYPE,
    p_salary IN employees.salary%TYPE
)
IS
BEGIN
    UPDATE employees
    SET salary = p_salary
    WHERE employee_id = p_employee_id;
    
    -- Commit the changes
    COMMIT;
    
    DBMS_OUTPUT.PUT_LINE('Salary updated successfully!');
END;
/

ব্যাখ্যা:

  • Procedure নাম: update_employee_salary
  • Parameter: দুটি ইনপুট প্যারামিটার আছে - p_employee_id এবং p_salary। এই প্যারামিটারগুলির মাধ্যমে আমরা কর্মচারীর employee_id এবং আপডেট করার জন্য নতুন বেতন পাস করব।
  • কাজ: এই প্রোসিডিউরটি কর্মচারীর বেতন আপডেট করবে এবং তারপরে একটি সফল বার্তা প্রিন্ট করবে।

প্রোসিডিউর কল করা:

BEGIN
    update_employee_salary(1001, 55000);
END;
/

এখানে, 1001 হল কর্মচারীর আইডি এবং 55000 হল নতুন বেতন। এই কলটি প্রোসিডিউরটি চালাবে এবং নির্দিষ্ট কর্মচারীর বেতন আপডেট করবে।


২. Function উদাহরণ

PL/SQL Function হল একটি স্টোরড প্রোগ্রাম যা একটি মান রিটার্ন করে। ফাংশন সাধারণত গণনা বা ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়, যেখানে একটি মান রিটার্ন করা প্রয়োজন।

উদাহরণ: একটি ফাংশন যা কর্মচারীর বেতন বৃদ্ধি হিসাব করবে

ধরা যাক, আমাদের একটি ফাংশন তৈরি করতে হবে যা একটি নির্দিষ্ট কর্মচারীর বেতন এবং বেতন বৃদ্ধি শতাংশ নিয়ে তার নতুন বেতন রিটার্ন করবে।

CREATE OR REPLACE FUNCTION calculate_new_salary(
    p_employee_id IN employees.employee_id%TYPE,
    p_increase_percentage IN NUMBER
)
RETURN NUMBER
IS
    v_current_salary employees.salary%TYPE;
    v_new_salary NUMBER;
BEGIN
    -- Get the current salary of the employee
    SELECT salary INTO v_current_salary
    FROM employees
    WHERE employee_id = p_employee_id;
    
    -- Calculate the new salary
    v_new_salary := v_current_salary + (v_current_salary * p_increase_percentage / 100);
    
    -- Return the new salary
    RETURN v_new_salary;
END;
/

ব্যাখ্যা:

  • Function নাম: calculate_new_salary
  • Parameters: p_employee_id (কর্মচারীর আইডি) এবং p_increase_percentage (বেতন বৃদ্ধির শতাংশ)।
  • Return Type: NUMBER, কারণ ফাংশনটি নতুন বেতনটি রিটার্ন করবে।
  • কাজ: এই ফাংশনটি প্রথমে কর্মচারীর বর্তমান বেতন পাবে, তারপর বেতন বৃদ্ধির শতাংশের ভিত্তিতে নতুন বেতন হিসাব করবে এবং সেই নতুন বেতনটি রিটার্ন করবে।

ফাংশন কল করা:

DECLARE
    v_new_salary NUMBER;
BEGIN
    v_new_salary := calculate_new_salary(1001, 10);
    DBMS_OUTPUT.PUT_LINE('The new salary is: ' || v_new_salary);
END;
/

এখানে, 1001 হল কর্মচারীর আইডি এবং 10 হল বেতন বৃদ্ধির শতাংশ (১০% বৃদ্ধি)। ফাংশনটি কল করে এবং নতুন বেতন প্রিন্ট করে।


প্রধান পার্থক্য:

FeatureProcedureFunction
Return ValueReturn করে না (void)Return করে একটি মান (value)
Usageসাধারণত ডেটা পরিবর্তন (INSERT, UPDATE, DELETE)সাধারণত মান গণনা (Computation)
Callকল করা হয় CALL অথবা BEGIN...ENDকল করা হয় SELECT বা অন্য ফাংশন থেকে

উপসংহার:

  • Procedure সাধারণত ডেটাবেসে কিছু কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়, যেমন তথ্য আপডেট করা বা ইনসার্ট করা, এবং এটি কোন মান রিটার্ন করে না।
  • Function একটি নির্দিষ্ট মান রিটার্ন করে এবং সাধারণত মান গণনা বা ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়।
Content added By
Promotion

Are you sure to start over?

Loading...