Diferença Entre Cursor Explícito E Cursor Implícito

Diferença Entre Cursor Explícito E Cursor Implícito
Diferença Entre Cursor Explícito E Cursor Implícito

Vídeo: Diferença Entre Cursor Explícito E Cursor Implícito

Vídeo: Diferença Entre Cursor Explícito E Cursor Implícito
Vídeo: PLSQL Básico - Cursores Implicitos (vs cursores explìcitos) - Excepciones 2024, Pode
Anonim

Cursor explícito vs Cursor 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 SQL select e, em seguida, pode ser usado para manipular as informações dentro dessa instrução SQL. Os cursores implícitos são criados automaticamente e usados sempre que uma instrução Select é emitida no PL / SQL, quando não há um cursor definido explicitamente. Cursores explícitos, como o nome sugere, são definidos explicitamente pelo desenvolvedor. Em PL / SQL, um cursor explícito é na verdade uma consulta nomeada definida usando o cursor de palavra-chave.

O que é o cursor implícito?

Cursores implícitos são criados e usados automaticamente pelo Oracle sempre que uma instrução select é emitida. Se um cursor implícito for usado, o Sistema de Gerenciamento de Banco de Dados (DBMS) executará as operações de abrir, buscar e fechar automaticamente. 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 introduzirá um erro. Um cursor implícito é automaticamente associado a cada instrução DML (Data Manipulation Language), ou seja, instruçõ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, a exceção NO_DATA_FOUND pode ser gerada quando a instrução SQL não retorna dados. Além disso,Os cursores implícitos podem gerar exceções TOO_MANY_ROWS quando a instrução SQL retorna mais de uma linha.

O que é o cursor explícito?

Conforme mencionado anteriormente, os cursores explícitos são consultas definidas usando um nome. Um cursor explícito pode ser considerado um ponteiro para um conjunto de registros e o ponteiro pode ser movido para frente dentro do conjunto de registros. Os cursores explícitos fornecem ao usuário o controle completo sobre a abertura, fechamento e obtenção de dados. Além disso, várias linhas podem ser buscadas usando um cursor explícito. Os cursores explícitos também podem receber parâmetros como qualquer função ou procedimento para que as variáveis no cursor possam ser alteradas cada vez que for executado. Além disso, os cursores explícitos permitem que você busque uma linha inteira em 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 Cursor Explícito e 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 instrução select. Além disso, várias linhas podem ser buscadas usando cursores explícitos, enquanto os cursores implícitos podem buscar apenas uma única linha. Além disso, as exceções NO_DATA_FOUND e TOO_MANY_ROWS não são geradas ao usar cursores explícitos, ao contrário dos cursores implícitos. Em essência, os cursores implícitos são mais vulneráveis a erros de dados e fornecem menos controle programático do que os cursores explícitos. Além disso, os cursores implícitos são considerados menos eficientes do que os cursores explícitos.

Recomendado: