Raise_application_error রোলব্যাক করে?
Raise_application_error রোলব্যাক করে?

ভিডিও: Raise_application_error রোলব্যাক করে?

ভিডিও: Raise_application_error রোলব্যাক করে?
ভিডিও: PL/SQL টিউটোরিয়াল 48: RAISE_APPLICATION_ERROR ব্যবহার করে ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম ঘোষণা করুন 2024, মে
Anonim

একটি ট্রিগার ভিতরে a RAISE_APPLICATION_ERROR করে সঞ্চালন না a রোলব্যাক , এটি বর্তমান ক্রিয়াকলাপ বাতিল করে, যেমন একটি একক আপডেট/ইনসার্ট/ডিলিট। ক রোলব্যাক বর্তমান লেনদেনের মধ্যে সমস্ত পরিবর্তন ফিরিয়ে দেয় (বা প্রদত্ত সেভপয়েন্ট পর্যন্ত), এটি ভিন্ন।

এইভাবে, Raise_application_error কি?

উত্তরটি raise_application_error আসলে ওরাকল দ্বারা সংজ্ঞায়িত একটি পদ্ধতি যা বিকাশকারীকে একটি ব্যতিক্রম উত্থাপন করতে এবং পদ্ধতির সাথে একটি ত্রুটি নম্বর এবং বার্তা যুক্ত করতে দেয়। ওরাকল প্রদান করে raise_application_error পদ্ধতি যা আপনাকে আপনার অ্যাপ্লিকেশনের মধ্যে কাস্টম ত্রুটি সংখ্যা বাড়াতে অনুমতি দেয়।

উপরন্তু, একটি ট্রিগারের ভিতরে একটি রোলব্যাক বিবৃতি কার্যকর করা হলে কী হবে? যখন ট্রিগার বর্তমান লেনদেন এখনও সম্পূর্ণ হয়নি fires. যেহেতু COMMIT তাদের অনুমতি দিয়ে একটি লেনদেন বন্ধ করে দেয় ট্রিগার হবে কাজের ইউনিট ভাঙ্গুন। তাই পরিবর্তন একটি ট্রিগার মৃত্যুদন্ড কার্যকর করা হয়েছে মালিকানার লেনদেন দ্বারা প্রতিশ্রুতিবদ্ধ (বা ফিরে আসা) যা ডিএমএল জারি করেছে যা বহিস্কার করেছে ট্রিগার.

এর থেকে, প্রাগমা ব্যতিক্রম_ইনিট এবং রাইস_অ্যাপ্লিকেশন_এরর মধ্যে পার্থক্য কী?

pragma ব্যতিক্রম init একটি ওরাকল ত্রুটিকে একটি নামযুক্ত ব্যতিক্রমে পরিণত করে। যদি একটি ডাটাবেস অপারেশন একটি ORA-00054 "রিসোর্স ব্যস্ত" বাড়ায়, তাহলে আপনাকে কোড করতে হবে:. উত্থাপন_আবেদন_ত্রুটি একটি ত্রুটি বাড়াতে ব্যবহৃত হয় - ব্যতিক্রম_ইনিট ত্রুটিগুলি মোকাবেলা করতে ব্যবহৃত হয় (আমি অনুমান করি আপনি বলতে পারেন যে তারা বিপরীত এ উপায়)।

Sqlerrm কি?

SQLERRM ফাংশন। কাজ SQLERRM এর ত্রুটি-সংখ্যা আর্গুমেন্টের সাথে যুক্ত ত্রুটি বার্তাটি ফেরত দেয়। যদি যুক্তিটি বাদ দেওয়া হয়, তাহলে এটি SQLCODE-এর বর্তমান মানের সাথে সম্পর্কিত ত্রুটি বার্তা প্রদান করে। SQLERRM কোন যুক্তি ছাড়া শুধুমাত্র একটি ব্যতিক্রম হ্যান্ডলারে দরকারী.

প্রস্তাবিত: