Ички өзгөчөлүктөр EXCEPTION_INIT аркылуу Oracle ката номери менен байланыштырган колдонуучу аныктаган өзгөчөлүктөр сыяктуу эле, иштөө убактысы системасы тарабынан кыйыр түрдө көтөрүлөт. Бирок, колдонуучу аныктаган башка өзгөчөлүктөр RAISE билдирүүлөрү менен ачык түрдө көтөрүлүшү керек.
Кайсы өзгөчөлүктөр кыйыр түрдө көтөрүлөт?
Алдын ала аныкталган өзгөчөлүктөр иштөө убактысы системасы тарабынан кыйыр түрдө (автоматтык түрдө) көтөрүлөт. Колдонуучу тарабынан аныкталган өзгөчөлүктөр RAISE билдирүүлөрү менен ачык түрдө көтөрүлүшү керек. Көбөйтүлгөн өзгөчө кырдаалдарды иштетүү үчүн, сиз өзгөчө жагдайларды иштеткичтер деп аталган өзүнчө процедураларды жазасыз.
Кайсы өзгөчөлүк Oracle тарабынан автоматтык түрдө көтөрүлөт?
Ички өзгөчөлүк PL/SQL программаңыз Oracle эрежесин бузса же системага көз каранды чектен ашып кетсе, автоматтык түрдө көтөрүлөт. PL/SQL кээ бир жалпы Oracle каталарын өзгөчө учурлар катары алдын ала аныктайт. Мисалы, SELECT INTO оператору саптарды кайтарбаса, PL/SQL алдын ала аныкталган NO_DATA_FOUND өзгөчөлүгүн көтөрөт.
Oracle'да жогорулатуу өзгөчөлүгү деген эмне?
RAISE оператору PL/SQL блогунун же субпрограммасынын нормалдуу аткарылышын токтотуп, башкарууну өзгөчө кырдаалды иштеткичке өткөрүп берет. RAISE билдирүүлөрү ZERO_DIVIDE же NO_DATA_FOUND сыяктуу алдын ала аныкталган өзгөчөлүктөрдү же аты сиз чечкен колдонуучу аныктаган өзгөчөлүктөрдү көтөрүшү мүмкүн.
Алдын ала аныкталбаган өзгөчөлүктөр кайсылар?
Алдын ала аныкталбаган өзгөчөлүктөр алдын ала аныкталган өзгөчөлүктөргө окшош, башкаалардын алдын ала аныкталган аттары жок. Аларда стандарттуу Oracle ката номери (ORA-) жана ката кабары бар. EXCEPTION_INIT функциясы. Алдын ала аныкталбаган Oracle сервер катасын алгач жарыялоо менен кармап кала аласыз.