ফাংশন (Function)
কম্পিউটার প্রোগ্রামিং ভাষার প্রেক্ষাপটে ফাংশন হল নির্দেশাবলির একটি সেট যা কিছু ইনপুট নেয় এবং নির্দিষ্ট কাজ সম্পাদন করে। SQL-এ, একটি ফাংশন একটি মান ফেরত দেয়।
প্রোসিডিউর (Procedure)
প্রোসিডিউরও একটি নির্দেশাবলির সেট যা ইনপুট নেয় এবং নির্দিষ্ট কাজ সম্পাদন করে। SQL-এ, প্রোসিডিউর কোনো মান ফেরত দেয় না। জাভায়, প্রোসিডিউর এবং ফাংশন একই এবং এদের সাব-রুটিনও বলা হয়।
SQL ফাংশন এবং SQL প্রোসিডিউর-এর মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো নিচে দেওয়া হলো:
| Sr. No. | Key | Function | Procedure |
|---|---|---|---|
| 1 | Definition | একটি ফাংশন দেওয়া ইনপুট ব্যবহার করে ফলাফল ক্যালকুলেট করতে ব্যবহৃত হয়। | একটি প্রোসিডিউর নির্দিষ্ট ক্রমে নির্দিষ্ট কাজ সম্পাদন করতে ব্যবহৃত হয়। |
| 2 | Call | একটি ফাংশন প্রোসিডিউর দ্বারা কল করা যায়। | একটি প্রোসিডিউর ফাংশন দ্বারা কল করা যায় না। |
| 3 | DML | DML স্টেটমেন্ট ফাংশনের মধ্যে এক্সিকিউট করা যায় না। | DML স্টেটমেন্ট প্রোসিডিউরের মধ্যে এক্সিকিউট করা যায়। |
| 4 | SQL, Query | একটি ফাংশন কোয়েরির মধ্যে কল করা যায়। | একটি প্রোসিডিউর কোয়েরির মধ্যে কল করা যায় না। |
| 5 | SQL, Call | যখন একটি ফাংশন কল করা হয়, এটি প্রথমে কম্পাইল হয় তারপর কল হয়। | একটি প্রোসিডিউর একবার কম্পাইল হয় এবং বারবার কম্পাইল ছাড়া কল করা যায়। |
| 6 | SQL, Return | একটি ফাংশন মান এবং কন্ট্রোল ফেরত দেয় কলিং ফাংশন বা কোডে। | একটি প্রোসিডিউর কন্ট্রোল ফেরত দেয় কিন্তু কলিং ফাংশন বা কোডে কোনো মান ফেরত দেয় না। |
| 7 | try-catch | একটি ফাংশনে try-catch-এর কোনো সাপোর্ট নেই। | একটি প্রোসিডিউর try-catch ব্লকের সাপোর্ট রাখে। |
| 8 | SELECT | একটি SELECT স্টেটমেন্টে ফাংশন কল থাকতে পারে। | একটি SELECT স্টেটমেন্টে প্রোসিডিউর কল থাকতে পারে না। |
| 9 | Explicit Transaction Handling | একটি ফাংশনে এক্সপ্লিসিট ট্রানজ্যাকশন হ্যান্ডলিং থাকতে পারে না। | একটি প্রোসিডিউর এক্সপ্লিসিট ট্রানজ্যাকশন হ্যান্ডলিং ব্যবহার করতে পারে। |