Diferença entre Cursor explícito e Cursor implícito

Anonim

Cursor explícito vs Ciclo implícito

Quando se trata de bancos de dados, um cursor é uma estrutura de controle que permite percorrer os registros em um banco de dados. Um cursor fornece um mecanismo para atribuir um nome a uma instrução de seleção SQL e, em seguida, pode ser usado para manipular as informações dentro dessa declaração SQL. Os cursores implícitos são criados e usados ​​automaticamente sempre que uma declaração Select é emitida em PL / SQL, quando não há um cursor explicitamente definido. Os cursores explícitos, como o nome sugere, são definidos explicitamente pelo desenvolvedor. Em PL / SQL, um cursor explícito é realmente uma consulta nomeada definida usando o cursor da palavra-chave.

O que é Cursor implícito?

Os cursores implícitos são criados e usados ​​automaticamente pela Oracle sempre que uma declaração seletiva é emitida. Se um cursor implícito for usado, o Sistema de Gerenciamento de Banco de Dados (SGBD) executará automaticamente as operações de abertura, busca e fechamento. Os cursores implícitos devem ser usados ​​apenas com instruções SQL que retornam uma única linha. Se a instrução SQL retornar mais de uma linha, o uso de um cursor implícito apresentará um erro. Um cursor implícito é automaticamente associado a cada declaração DML (Data Manipulation Language), nomeadamente declarações INSERT, UPDATE e DELETE. Além disso, um cursor implícito é usado para processar instruções SELECT INTO. Ao buscar dados usando cursores implícitos, exceção NO_DATA_FOUND pode ser aumentada quando a instrução SQL não retorna dados. Além disso, cursores implícitos podem aumentar exceções TOO_MANY_ROWS quando a instrução SQL retorna mais de uma linha.

O que é Cursor explícito?

Como mencionado anteriormente, cursores explícitos são consultas definidas usando um nome. Um cursor explícito pode ser considerado como um ponteiro para um conjunto de registros e o ponteiro pode ser movido para a frente dentro do conjunto de registros. Cursores explícitos fornecem ao usuário o controle completo sobre abertura, fechamento e busca de dados. Além disso, várias linhas podem ser buscadas usando um cursor explícito. Os cursores explícitos também podem ter parâmetros como qualquer função ou procedimento para que as variáveis ​​no cursor possam ser alteradas sempre que seja executada. Além disso, cursores explícitos permitem que você procure uma linha inteira para uma variável de registro PL / SQL. Ao usar um cursor explícito, primeiro ele precisa ser declarado usando um nome. Os atributos do cursor podem ser acessados ​​usando o nome dado ao cursor. Depois de declarar, o cursor precisa ser aberto primeiro. Em seguida, a busca pode ser iniciada. Se várias linhas precisam ser buscadas, a operação de busca precisa ser feita dentro de um loop. Finalmente, o cursor precisa ser fechado.

Diferença entre o Cursor Explicado eo Cursor Implícito

A principal diferença entre o cursor implícito e o cursor explícito é que um cursor explícito precisa ser definido explicitamente, fornecendo um nome, enquanto os cursores implícitos são criados automaticamente quando você emite uma declaração seletiva.Além disso, várias linhas podem ser buscadas usando cursores explícitos, enquanto os cursores implícitos só podem obter uma única linha. Também as exceções NO_DATA_FOUND e TOO_MANY_ROWS não são criadas ao usar cursores explícitos, ao contrário de cursores implícitos. Essencialmente, os cursores implícitos são mais vulneráveis ​​aos erros de dados e fornecem menos controle programático do que cursores explícitos. Além disso, os cursores implícitos são considerados menos eficientes do que cursores explícitos.