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

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

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

Видео: Разница между явным курсором и неявным курсором
Видео: Урок 12.PL SQL. Курсоры в PL SQL. 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. При использовании явного курсора сначала необходимо объявить его с помощью имени. Доступ к атрибутам курсора можно получить, используя имя, присвоенное курсору. После объявления сначала нужно открыть курсор. Затем можно приступать к выборке. Если необходимо извлечь несколько строк, операция выборки должна выполняться внутри цикла. Наконец, курсор должен быть закрыт.

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

Основное различие между неявным курсором и явным курсором заключается в том, что явный курсор должен быть определен явно путем указания имени, в то время как неявные курсоры создаются автоматически при выполнении оператора select. Кроме того, несколько строк могут быть получены с помощью явных курсоров, в то время как неявные курсоры могут извлекать только одну строку. Также исключения NO_DATA_FOUND и TOO_MANY_ROWS не возникают при использовании явных курсоров, в отличие от неявных курсоров. По сути, неявные курсоры более уязвимы к ошибкам данных и обеспечивают меньше программного контроля, чем явные курсоры. Кроме того, неявные курсоры считаются менее эффективными, чем явные.

Рекомендуемые: