در دیتابیس اوراکل، state بستههای PL/SQL در سطح session حفظ می شود. یعنی زمانی که یک package در session ای اجرا میشود، متغیرهای global آن، مقادیر خود را در میان چندین فراخوانی حفظ میکنند. در نسخههای قبلی Oracle(قبل از 26ai)، زمانی که یک package دوباره compile میشد، تمام sessionهایی که state آن package را نگه داشته اند با خطاهای ORA-04068 مواجه میشدند.
در اوراکل 26ai، عبارت RESETTABLE راهی جدید برای مدیریت state بستههای PL/SQL معرفی میکند. با استفاده از این عبارت، زمانی که package تشخیص دهد وضعیت آن دیگر معتبر نیست، بهصورت خودکار reset میشود، و مانع از کرش کردن session می شود. برای درک بهتر عملکرد آن، سناریوی عملی زیر را بررسی میکنیم.

