সংরক্ষিত পদ্ধতি বনাম ফাংশন
সংরক্ষিত পদ্ধতি এবং ফাংশন দুই ধরনের প্রোগ্রামিং ব্লক। তাদের দুজনেরই ডাকা নাম থাকতে হবে। এই কলিং নামগুলিকে অন্য প্রোগ্রামিং ব্লকের মধ্যে কল করার জন্য ব্যবহার করা হয় যেমন পদ্ধতি ফাংশন এবং প্যাকেজ বা SQL কোয়েরি। এই উভয় অবজেক্টের ধরনই পরামিতি গ্রহণ করে এবং সেই বস্তুর পিছনে কাজ সম্পাদন করে। এটি একটি সংরক্ষিত পদ্ধতি তৈরি করার জন্য (ORACLE-তে) সিনট্যাক্স, প্রক্রিয়া পদ্ধতির নাম (প্যারামিটার) তৈরি বা প্রতিস্থাপন করুন
যেমন
শুরু
বিবৃতি;
ব্যতিক্রম
ব্যতিক্রম_হ্যান্ডলিং
শেষ;
এবং এখানে একটি ফাংশন তৈরি করার জন্য সিনট্যাক্স রয়েছে (ORACLE এ), ফাংশন ফাংশন_নাম (প্যারামিটার) তৈরি বা প্রতিস্থাপন করুন
রিটার্ন রিটার্ন_ডেটাটাইপ
যেমন
শুরু
বিবৃতি;
রিটার্ন রিটার্ন_মান/ভেরিয়েবল;
ব্যতিক্রম;
ব্যতিক্রম_হ্যান্ডলিং;
শেষ;
সংরক্ষিত পদ্ধতি
উপরে উল্লিখিত হিসাবে সংরক্ষিত পদ্ধতির নাম দেওয়া হয়েছে প্রোগ্রামিং ব্লক। তারা পরামিতিগুলিকে ব্যবহারকারীর ইনপুট হিসাবে গ্রহণ করে এবং পদ্ধতির পিছনে যুক্তি অনুসারে প্রক্রিয়া করে এবং ফলাফল দেয় (বা একটি নির্দিষ্ট ক্রিয়া সম্পাদন করে)। এই প্যারামিটারগুলি IN, OUT এবং INOUT প্রকারের হতে পারে। পরিবর্তনশীল ঘোষণা, পরিবর্তনশীল অ্যাসাইনমেন্ট, কন্ট্রোল স্টেটমেন্ট, লুপ, এসকিউএল কোয়েরি এবং অন্যান্য ফাংশন/প্রক্রিয়া/প্যাকেজ কলগুলি পদ্ধতির মূল অংশে থাকতে পারে।
ফাংশন
ফাংশনগুলিকে প্রোগ্রামিং ব্লকও বলা হয়, যেগুলি অবশ্যই রিটার্ন স্টেটমেন্ট ব্যবহার করে একটি মান ফেরত দিতে হবে এবং এটি একটি মান ফেরত দেওয়ার আগে, এর বডিও কিছু ক্রিয়া সম্পাদন করে (প্রদত্ত যুক্তি অনুসারে)। ফাংশনগুলি চালানোর জন্য পরামিতিগুলিও গ্রহণ করে। প্রশ্নের ভিতরে ফাংশন কল করা যেতে পারে. যখন একটি ফাংশন একটি SELECT কোয়েরির ভিতরে কল করা হয়, তখন এটি SELECT কোয়েরির ফলাফল সেটের প্রতিটি সারিতে প্রযোজ্য হয়। ORACLE ফাংশনের বিভিন্ন বিভাগ রয়েছে। তারা হল,
একক সারি ফাংশন (কোয়েরির প্রতিটি সারির জন্য একটি একক ফলাফল প্রদান করে)
একক সারি ফাংশনের সাব ক্যাটাগরি আছে।
- সংখ্যাসূচক ফাংশন (যেমন: ABS, SIN, COS)
- ক্যারেক্টার ফাংশন (যেমন: CONCAT, INITCAP)
- তারিখ সময় ফাংশন (যেমন: LAST_DAY, NEXT_DAY)
- রূপান্তর ফাংশন (যেমন: TO_CHAR, TO_DATE)
- সংগ্রহ ফাংশন (যেমন: কার্ডিনালিটি, সেট)
- একত্রিত ফাংশন (সারির একটি গোষ্ঠীর উপর ভিত্তি করে একটি একক সারি প্রদান করে। যেমন: AVG, SUM, MAX)
- বিশ্লেষণমূলক ফাংশন
- অবজেক্ট রেফারেন্স ফাংশন
- মডেল ফাংশন
- ব্যবহারকারীর সংজ্ঞায়িত ফাংশন
ফাংশন এবং সঞ্চিত পদ্ধতির মধ্যে পার্থক্য কী?
• সমস্ত ফাংশন অবশ্যই রিটার্ন স্টেটমেন্ট ব্যবহার করে একটি মান প্রদান করবে। সংরক্ষিত পদ্ধতি রিটার্ন স্টেটমেন্ট ব্যবহার করে মান ফেরত দেয় না। একটি পদ্ধতির মধ্যে রিটার্ন স্টেটমেন্ট কলিং প্রোগ্রামে তার নিয়ন্ত্রণ ফিরিয়ে দেবে। সঞ্চিত পদ্ধতি থেকে মান ফেরত দিতে আউট প্যারামিটার ব্যবহার করা যেতে পারে।
• ফাংশনগুলি প্রশ্নের ভিতরে কল করা যেতে পারে, কিন্তু সঞ্চিত পদ্ধতিগুলি প্রশ্নের ভিতরে ব্যবহার করা যাবে না৷
• একটি ফাংশন তৈরি করতে রিটার্ন ডেটা টাইপ অবশ্যই অন্তর্ভুক্ত করতে হবে, কিন্তু সঞ্চিত পদ্ধতি DDL-এ তা নয়৷