Разлика между явен курсор и неявен курсор

Разлика между явен курсор и неявен курсор
Разлика между явен курсор и неявен курсор

Видео: Разлика между явен курсор и неявен курсор

Видео: Разлика между явен курсор и неявен курсор
Видео: КРАСИВЫЕ КУРСОРЫ ДЛЯ WINDOWS / КРАСИВЫЕ КУРСОРЫ 2020 / RGB КУРСОР 2024, Ноември
Anonim

Явен курсор срещу скрит курсор

Когато става дума за бази данни, курсорът е контролна структура, която позволява обхождане на записите в база данни. Курсорът предоставя механизъм за присвояване на име на SQL оператор за избор и след това може да се използва за манипулиране на информацията в този SQL израз. Неявните курсори се създават автоматично и се използват всеки път, когато в PL/SQL се издаде оператор Select, когато няма изрично дефиниран курсор. Явните курсори, както подсказва името, се дефинират изрично от разработчика. В PL/SQL изричният курсор всъщност е наименувана заявка, дефинирана с помощта на ключовата дума курсор.

Какво е скрит курсор?

Неявните курсори се създават автоматично и се използват от Oracle всеки път, когато се издава оператор select. Ако се използва скрит курсор, системата за управление на бази данни (СУБД) ще извърши автоматично операциите за отваряне, извличане и затваряне. Неявните курсори трябва да се използват само с SQL изрази, които връщат един ред. Ако SQL операторът върне повече от един ред, използването на скрит курсор ще доведе до грешка. Неявният курсор се свързва автоматично с всеки израз на езика за манипулиране на данни (DML), а именно оператори INSERT, UPDATE и DELETE. Също така, неявният курсор се използва за обработка на изрази SELECT INTO. При извличане на данни с помощта на неявни курсори NO_DATA_FOUND изключение може да бъде повдигнато, когато SQL операторът не върне данни. Освен това неявните курсори могат да предизвикат TOO_MANY_ROWS изключения, когато SQL операторът върне повече от един ред.

Какво е явен курсор?

Както споменахме по-рано, изричните курсори са заявки, дефинирани с помощта на име. Явният курсор може да се разглежда като указател към набор от записи и показалецът може да се премести напред в рамките на набора от записи. Явните курсори предоставят на потребителя пълен контрол върху отварянето, затварянето и извличането на данни. Също така, множество редове могат да бъдат извлечени с помощта на явен курсор. Явните курсори също могат да приемат параметри точно като всяка функция или процедура, така че променливите в курсора да могат да се променят всеки път, когато се изпълнява. В допълнение, изричните курсори ви позволяват да извлечете цял ред в променлива на PL/SQL запис. Когато използвате изричен курсор, първо той трябва да бъде деклариран с име. Атрибутите на курсора могат да бъдат достъпни с помощта на името, дадено на курсора. След деклариране, курсорът трябва първо да се отвори. След това извличането може да започне. Ако трябва да бъдат извлечени няколко реда, операцията по извличане трябва да се извърши вътре в цикъл. Накрая курсорът трябва да се затвори.

Разлика между явен курсор и имплицитен курсор

Основната разлика между имплицитния и експлицитния курсор е, че експлицитният курсор трябва да бъде дефиниран изрично чрез предоставяне на име, докато имплицитните курсори се създават автоматично, когато подадете команда за избор. Освен това, множество редове могат да бъдат извлечени с помощта на явни курсори, докато неявните курсори могат да извлекат само един ред. Също така NO_DATA_FOUND и TOO_MANY_ROWS изключения не се повдигат при използване на явни курсори, за разлика от неявните курсори. По същество имплицитните курсори са по-уязвими към грешки в данните и осигуряват по-малко програмен контрол от експлицитните курсори. Освен това неявните курсори се считат за по-малко ефективни от изричните курсори.

Препоръчано: