PL/SQL এর সাথে Procedure এবং Function কল করা

PL/SQL এর Stored Procedures এবং Functions - পিএল/এসকিউএল (PL/SQL) - Database Tutorials

415

PL/SQL (Procedural Language/Structured Query Language) এর মধ্যে Procedure এবং Function হল দুটি গুরুত্বপূর্ণ উপাদান, যা ডেটাবেস অপারেশন পরিচালনা করতে ব্যবহৃত হয়।

  • Procedure হল একটি ব্লক যা একটি নির্দিষ্ট কাজ করে এবং কিছু রিটার্ন করে না। এটি কার্যকরী কোডের একত্রিত সেট হিসেবে কাজ করে।
  • Function হল একটি ব্লক যা একটি মান রিটার্ন করে। এটি সাধারণত কোনো গণনা বা ডেটা প্রসেসিং করতে ব্যবহৃত হয় এবং এটি কোনো মান (value) রিটার্ন করতে বাধ্য।

Procedure কল করা

PL/SQL এ Procedure কল করার জন্য আপনাকে EXECUTE কমান্ড ব্যবহার করতে হয়। প্রক্রিয়া কল করার জন্য একটি BEGIN এবং END ব্লক এর মধ্যে কোড ব্যবহার করা হয়।

Procedure তৈরি করা:

CREATE OR REPLACE PROCEDURE greet_user (p_name IN VARCHAR2) IS
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello, ' || p_name);
END greet_user;

এখানে, greet_user নামে একটি Procedure তৈরি করা হয়েছে, যা একটি ইনপুট প্যারামিটার p_name গ্রহণ করে এবং তাকে হ্যালো সিস্টেম আউটপুট হিসেবে প্রিন্ট করে।

Procedure কল করা:

Procedure কল করার জন্য EXECUTE বা BEGIN...END ব্লক ব্যবহার করা যায়।

  1. EXECUTE কমান্ডের মাধ্যমে কল:

    EXECUTE greet_user('John');
    
  2. BEGIN...END ব্লক দিয়ে কল:

    BEGIN
       greet_user('John');
    END;
    

এখানে, greet_user('John') কল করলে আউটপুট হবে: Hello, John


Function কল করা

Function এর মাধ্যমে একটি মান রিটার্ন করা হয়, সুতরাং একটি SELECT স্টেটমেন্টে অথবা কোনো PL/SQL ব্লক এর মধ্যে ফাংশন কল করা যায়।

Function তৈরি করা:

CREATE OR REPLACE FUNCTION add_numbers (p_num1 IN NUMBER, p_num2 IN NUMBER) 
RETURN NUMBER IS
BEGIN
    RETURN p_num1 + p_num2;
END add_numbers;

এখানে, add_numbers নামে একটি ফাংশন তৈরি করা হয়েছে, যা দুটি সংখ্যা যোগ করে এবং ফলাফল রিটার্ন করে।

Function কল করা:

  1. SELECT স্টেটমেন্টে ফাংশন কল:

    SELECT add_numbers(10, 20) FROM dual;
    

    এখানে, add_numbers(10, 20) ফাংশন কল করলে ফলাফল হবে: 30

  2. PL/SQL ব্লকে ফাংশন কল:

    DECLARE
       v_result NUMBER;
    BEGIN
       v_result := add_numbers(10, 20);
       DBMS_OUTPUT.PUT_LINE('The sum is: ' || v_result);
    END;
    

    এই ব্লকে, add_numbers(10, 20) ফাংশন কল করা হচ্ছে এবং তার রিটার্ন মান v_result ভেরিয়েবলে রাখা হচ্ছে। আউটপুট হবে: The sum is: 30


Procedure এবং Function এর মধ্যে পার্থক্য

বৈশিষ্ট্যProcedureFunction
Return Valueকোনো মান রিটার্ন করে নাএকটি মান রিটার্ন করে
ব্যবহারপ্রধানত কার্যকরী কাজের জন্য ব্যবহার হয়সাধারণত মানের গণনা বা প্রসেসিংয়ের জন্য ব্যবহার হয়
ডাটা ম্যানিপুলেশনডাটা ম্যানিপুলেশন করতে পারেশুধুমাত্র একটি মান প্রদান করে
কল করার পদ্ধতিEXECUTE বা BEGIN...END ব্লক দিয়েSELECT স্টেটমেন্ট বা PL/SQL ব্লক দিয়ে

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

Procedure কলের উদাহরণ:

-- Procedure Create
CREATE OR REPLACE PROCEDURE employee_details (p_employee_id IN NUMBER) IS
   v_name VARCHAR2(100);
BEGIN
   SELECT first_name || ' ' || last_name INTO v_name
   FROM employees
   WHERE employee_id = p_employee_id;
   DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_name);
END employee_details;

-- Procedure Call in PL/SQL Block
BEGIN
   employee_details(100); -- 100 is the employee_id
END;

এখানে, employee_details নামে একটি procedure তৈরি করা হয়েছে যা কর্মচারীর ID এর ভিত্তিতে তাদের নাম প্রদান করে।


Function কলের উদাহরণ:

-- Function Create
CREATE OR REPLACE FUNCTION get_employee_salary (p_employee_id IN NUMBER)
RETURN NUMBER IS
   v_salary NUMBER;
BEGIN
   SELECT salary INTO v_salary
   FROM employees
   WHERE employee_id = p_employee_id;
   RETURN v_salary;
END get_employee_salary;

-- Function Call in PL/SQL Block
DECLARE
   v_salary NUMBER;
BEGIN
   v_salary := get_employee_salary(100); -- 100 is the employee_id
   DBMS_OUTPUT.PUT_LINE('Employee Salary: ' || v_salary);
END;

এখানে, get_employee_salary নামে একটি function তৈরি করা হয়েছে যা কর্মচারীর ID এর ভিত্তিতে তাদের বেতন রিটার্ন করে।


Procedure এবং Function এর কল করার চ্যালেঞ্জ এবং Best Practices

  1. Error Handling: ফাংশন বা প্রোসিডিউর কল করার সময় কোনো ত্রুটি ঘটলে তা যথাযথভাবে EXCEPTION HANDLING ব্যবহার করে সমাধান করতে হবে।
  2. Parameter Validation: ইনপুট প্যারামিটারগুলোর ভ্যালিডেশন করা উচিত যাতে ভুল ডেটা ফাংশন বা প্রোসিডিউরে প্রবাহিত না হয়।
  3. Performance Optimization: যদি অনেক ডেটা প্রসেস করতে হয়, তবে BULK COLLECT বা FORALL ব্যবহার করে কোডের পারফরম্যান্স উন্নত করা উচিত।
  4. Reusable Code: Procedure এবং Function গুলি পুনরায় ব্যবহারের উপযোগী হতে হবে, যাতে একাধিক জায়গায় এগুলি কল করা যায়।

এইভাবে PL/SQL-এ Procedure এবং Function কল করা হয় এবং এগুলির মধ্যে পার্থক্য ও বাস্তব উদাহরণগুলি দেওয়া হয়েছে।

Content added By
Promotion

Are you sure to start over?

Loading...