Oracle - O ciclo de vida de um cursor
Introdução
Um bom conhecimento do ciclo de vida e do funcionamento dos cursores permitirá que você otimize os aplicativos que executam consultas SQL.
Observe que : "Um cursor é um procedimento que lhe permite atribuir um nome a uma" instrução SELECT "e alterar as informações dentro da instrução SQL"
Começando
Os passos na execução de um cursor são:
- Abrindo um cursor: a memória é alocada para o cursor na memória privada do processo do servidor (no lado do servidor) associado à sessão (UGA User Global Area). Observe que nenhuma consulta SQL está associada ao cursor por enquanto.
- Caminho do cursor: uma consulta SQL está associada a ele. A representação da rota da solicitação, incluindo seu plano de implementação, que descreve como o mecanismo SQL executa a instrução SQL é carregada no Shared Pool, no cache da biblioteca . A estrutura na UGA é atualizada para armazenar um ponteiro para a área associada ao cursor no cache da biblioteca.
- Definição de variáveis de saída: a consulta SQL retorna dados, portanto as variáveis relacionadas ao devem ser definidas. Essa definição também é necessária para solicitações DELETE, INSERT e UPDATE (usando a cláusula RETURNING).
- Vinculando variáveis de entrada: se a consulta SQL usa variáveis, elas devem ser fornecidas. Nenhuma verificação é feita no link. Se valores inválidos forem passados, um erro de tempo de execução será acionado.
- Execução do cursor: neste estágio, o SQL é executado. Dependendo do mecanismo do banco de dados, a fase da implementação real pode ser adiada no momento da busca.
- Buscar cursor (recuperação de conteúdo): Se a consulta SQL retornar um resultado, ela será recuperada. Em geral, é nesse estágio que o tratamento ocorre.
- Fechando o cursor : o cursor associado aos recursos na UGA é liberado automaticamente. O cursor no cache da biblioteca não é excluído em resposta a possíveis usos futuros.