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

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

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

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

Изричен курсор срещу неявен курсор

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

Какво е имплицитен курсор?

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

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

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

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

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

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