Експлицитни Цурсор вс Имплицит Цурсор
Када је ријеч о базама података, курсор је контролна структура која омогућава прелазак записима у бази података. Курсор пружа механизам за додељивање имена СКЛ наредби за одабир и тада се може користити за манипулацију информацијама унутар те СКЛ изјаве. Имплицитни курсори се аутоматски креирају и користе сваки пут када се у ПЛ / СКЛ изда издање Селецт, када не постоји експлицитно дефинисан курсор. Експлицитни курсори, као што име сугерира, програмер изричито дефинишу. У ПЛ / СКЛ експлицитни курсор је заправо именовани упит дефиниран користећи курсор кључне ријечи.
Шта је имплицитни курсор?
Орацле аутоматски креира и користи имплицитне курсоре при сваком издавању изјаве о одабиру. Ако се користи имплицитни курсор, систем управљања базама података (ДБМС) ће аутоматски обављати операције отварања, дохваћања и затварања. Имплицитни курсори се требају користити само са СКЛ изјавама које враћају један ред. Ако СКЛ израз врати више реда, коришћење имплицитног курсора ће увести грешку. Имплицитни курсор аутоматски се повезује са свим изјавама ДМЛ-а (Дата Манипулатион Лангуаге), наиме ИНСЕРТ, УПДАТЕ и ДЕЛЕТЕ изјава. Такође, имплицитни курсор се користи за обраду изјава СЕЛЕЦТ ИНТО. При дохваћању података помоћу имплицитних показивача НО_ДАТА_ФОУНД изузетак се може подићи када СКЛ израз не врати податке. Надаље, имплицитни курсори могу подићи ТОО_МАНИ_РОВС изнимке када СКЛ израз врати више реда.
Шта је експлицитни курсор?
Као што је раније споменуто, експлицитни курсори су упити дефинисани помоћу имена. Експлицитни курсор се може сматрати показивачем на скуп записа, а показивач се може померати према напријед у оквиру скупа записа. Експлицитни курсори пружају кориснику потпуну контролу над отварањем, затварањем и дохваћањем података. Такође, више редова се може преузети помоћу експлицитног курсора. Експлицитни курсори такође могу узимати параметре као и било која функција или поступак тако да се променљиве у курсору могу мењати сваки пут када се изврши. Поред тога, експлицитни курсори вам омогућавају да доведете читав ред у варијаблу ПЛ / СКЛ записа. Када користите експлицитни курсор, прво га треба декларисати помоћу имена. Атрибутима курсора може се приступити користећи име које је додељено курсору. Након проглашења, курсор је потребно прво отворити. Тада се може покренути дохваћање. Ако је потребно дохватити више редова, операцију дохвата треба обавити унутар петље. На крају, показивач треба да буде затворен.
Разлика између експлицитног курсора и имплицитног курсора
Главна разлика између имплицитног курсора и експлицитног курсора је да се експлицитни курсор мора експлицитно дефинисати уношењем имена, док се имплицитни курсори аутоматски креирају када издајете наредбу за одабир. Поред тога, више редова се може добити помоћу експлицитних курсора, док имплицитни курсори могу дохватити само један ред. Такође изузеци НО_ДАТА_ФОУНД и ТОО_МАНИ_РОВС нису наведени када се користе експлицитни курсори, за разлику од имплицитних курсора. У суштини, имплицитни курсори су рањивији на грешкама у подацима и пружају мање програмске контроле од експлицитних курсора. Такође, имплицитни курсори се сматрају мање ефикасним од експлицитних курсора.