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

PL/SQL ফাংশন এবং প্রোসিডিউর - পিএল/এসকিউএল (PL/SQL) - Database Tutorials

362

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 এর পার্থক্য:

বিষয়FunctionProcedure
রিটার্ন ভ্যালুঅবশ্যই একটি মান রিটার্ন করে।কোন মান রিটার্ন করে না। (তবে OUT প্যারামিটার ব্যবহার করে আউটপুট পাঠানো যায়)
ব্যবহারসাধারণত SQL কিউরিতে বা এক্সপ্রেশন হিসেবে ব্যবহার হয়।সাধারণত কাজ বা কার্যকলাপ সম্পাদন করতে ব্যবহার হয়।
প্যারামিটারইনপুট প্যারামিটার গ্রহণ করে এবং একটি মান রিটার্ন করে।ইনপুট, আউটপুট, অথবা ইন/আউট প্যারামিটার গ্রহণ করতে পারে।
বিভাগসাধারণত গণনা, মান বের করা ইত্যাদির জন্য ব্যবহৃত হয়।সাধারণত ডেটাবেস অপারেশন (INSERT, UPDATE, DELETE) সম্পাদনের জন্য ব্যবহৃত হয়।
SQL এ ব্যবহৃতSELECT স্টেটমেন্টের অংশ হিসেবে ব্যবহার করা যায়।সাধারণত EXECUTE স্টেটমেন্ট বা কোড ব্লকের বাইরে কল করা হয়।
অফসেটের সুবিধাএকটি একক মান রিটার্ন করে, যা পরবর্তী কাজের জন্য ব্যবহার করা যায়।অনেক ধরনের কার্যকলাপ একসাথে সম্পাদন করতে পারে, যেমন একাধিক ডেটাবেস অপারেশন।

সংক্ষেপে:

  • Function হল একটি গাণিতিক বা লজিক্যাল ব্লক যা একক মান রিটার্ন করে এবং সাধারণত এক্সপ্রেশন বা SELECT স্টেটমেন্টের মধ্যে ব্যবহৃত হয়।
  • Procedure একটি কার্যকরী ব্লক যা একাধিক প্যারামিটার গ্রহণ করতে পারে এবং বিভিন্ন ধরনের কার্যক্রম সম্পাদন করে, তবে কোনো মান রিটার্ন করে না।

আপনার প্রয়োজনে উপযুক্ত ব্যবহার নির্বাচন করে আপনি Function বা Procedure ব্যবহার করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...